공부 내용 : 디버깅 방법과 명령어, 간단한 사용, 역어셈블리
디버깅 시 intel 문법으로 바꾸는 법
gdb -q
set disassembly intel 또는 set dis intel 이라고 치면 된다 하지만 set dis intel은 내 컴퓨터에서 안됨..
또 다른 방법은
.gdbinit 파일에 설정에 해주는 것이다
파일을 실행해서 치든 상관없다. 하지만 난 echo 명령어를 사용하였다.
echo "set disassembly intel" > ~/.gdbinit
그리고 인텔의 문법 형식은
명령어 <목적지>, <근원지> 이다.
예를 들어서 mov rbp, rsp 라고 하면 rsp를 rbp로 복사해라는 뜻이다.
또는 sub rsp, 0x8은 rsp에서 8을 빼라는 뜻이다.
또 컴파일 시 -g 옵션을 넣어주면 디버깅 시 소스를 볼 수 있다.
또한 디버그 명령어가 있는데
list : 소스 출력
disassemble 함수 : 지정한 함수를 역어셈블리 한다.
break 함수 : 중지점으로 설정
info register (레지스터) : 레지스터의 정보가 출력(레지스터가 가지고 있는 값을 출력한다)
줄여서 i r (레지스터) 가능
x/() (레지스터 또는 주소) : 레지스터 또는 주소가 가르키는 주소에 있는 값을 출력한다.
()안에는 t,o,u,x가 가능한다 t는 2진수 o는 8진수 u는 10진수 x는 16진수이다.
x/()안에 b, h, w, g가 입력이 가능하다. b는 단일바이트, h는 하프워드(2바이트), w는 워드(4바이트), g는 자이언트(8바이트)로 출력이된다.
그리고 또한 x/i (레지스터 또는 주소)를 입력하면 레지스터 또는 주소가 가르키는 주소에 있는 값이 어셈블리어로 출력이 된다.
'보안' 카테고리의 다른 글
해킹-공격의 예술(책) 공부 1일차 (1) | 2016.02.18 |
---|
댓글