[linux] 디버깅할때 자주 쓰이는 명령어들

두비니

·

2019. 5. 24. 03:24

F9: 실행(or breakpoint/entrypoint)
F2: breakpoint설정
ctrl+F2: 재시작
enter+F4: 함수에 진입하기
F8: 한줄씩 실행

push ebp
moc ebp, esp
sub esp, c===프롤로그

push(인자) : 스택에 인자를 집어넣음
ㄴpush exc인경우: 똑같이 4바이트 대입(최적화)
mov A, B: B에 있는 것을 A에 대입해라

lea A, B: B의 주소값을 A에 대입
sub A, B: B의 값만큼 감산(subtraction)
dword ptr: 4byte데이터임을 나타냄
word ptr: 2바이트 데이터임을 나타냄
byte ptr: 1바이트 데이터임을 나타냄
add A, B: B의 값을 A에 더하기
imul A, B: A에다가 B를 곱하기(부호상관X)
FLAGS 레지스터: if문에서 사용
jmp(주소값): 주소값으로 점프!(화살표있음)
je(주소값): jump if equal
ㄴ만약 이게 if문이라면 if문 안에는 '!='가있다!
cmp A, B: A-B의 값을 flags레지스터에 저장
div A: 기존의 eax의 값과 A를 나눠서 몫은 eax, 나머지는 edx에 저장.
test: 두 레지스터값이 모두 0일때 true반환