올리 디버거의 기본 명령어(code window에서 동작)
Restart : 다시 처음부터 디버깅 시작(디버깅을 당하는 프로세스를 종료하고 재실행) - ctrl+f2
step into : 하나의 OP code 실행(call 명령 시 함수 코드 내부로 따라 들어감) - f7
step over : 하나의 OP code 실행(call 명령 시 함수 코드 내부로 따라 들어가지 않고 그냥 함수 자체를 실행) - f8
execute till return : 함수 코드 내에서 retn 명령어까지 실행(함수 탈출) - ctrl + f9
명령어 실행 시 어셈블리어 코드 확인 가능
RETN은 함수의 끝에서 사용되며 이 함수가 호출된 원래 주소 쪽으로 되돌아 가는 명령어
어셈블리어에서 'JMP 0040104F를 실행하라'라고 말하는 것은 F7을 눌러 Step into 하라는 것임
이건 stub code : 개발 도구끼리, 버전에 따라 구성이 다 다르기 때문에 많이 보고 눈에 익히는 게 좋음
위에서부터 F7을 누르며 한 줄씩 내려오다보면 call 호출 명령어 확인 가능 step into명령어로 함수 내부 확인해보기
402524 함수는 main() 함수가 아님 - 왜냐하면 MessageBox() API 호출 코드가 보이지 않기 때문
함수에 들어가면 메인함수인지 확인하고 아니라면 탈출(ctrl+f9 눌러 retn 명령어 찾아 f7 눌러 탈출)하기를 반복
디버깅하다보면 저런 코드 확인 가능
CALL Kernel32.GetCommandLindW 명령어는 Win32 API 호출 코드이므로 F8눌러 따라 들어가지 않게 함 - 여긴 반복문으로 탈출하기 어려움
디버깅 하다 보면 확인 가능
문자열 확인 가능!! 따라서 이 함수가 바로 main() 함수임
다음에는 간단하게 찾는 법을 포스팅 하겠음
'정보보안 > 리버싱' 카테고리의 다른 글
리버싱) abexcm1.exe#2 - abex crackme (0) | 2021.05.13 |
---|---|
리버싱) abexcm1.exe#1 - abex crackme (0) | 2021.05.01 |
리버싱) 올리디버거 사용법 (abex crackme #1) - 단축키, 올리디버거 필수 사전 지식 (0) | 2021.04.25 |
리버싱) 기초 정적 분석과 기초 동적 분석 (0) | 2021.04.12 |
리버싱) 리버싱의 기초_1 (0) | 2020.12.11 |
댓글