리버싱 입문

[리버싱 입문](3)[abex crackme 1]

황올뱀 2025. 2. 5. 19:04

abex crackme 1


문제: 하드디스크를 CD롬으로 속이기


abexcrackme 1번을 ollydbg로 열었을 때 다음과 같다.
왼쪽에 있는 주소를 보아 이 프로그램은 00401000부터 시작함을 알 수 있다.

f7, f8을 이용해 조금씩 실행시키며 어디가 문젠지 파악하였디
f8: 한 줄씩 실행
f7: 한 줄씩 실행, 그러나 함수 내부로 들어감
크게 눈에 보이는 함수는 다음과 같다.
MessageBoxA함수: 보면 위에서 인자를 2개 받고 이 함수를 호출하면 메세지 창이 나오는 듯 하다.
GetDriveTypeA함수: 드라이브의 종류를 정수로 반환(kernel32에서 제공하는 함수)

즉 GetDriveType로 드라이브 종류를 안 다음 중간에 있는 
cmp eax, esi 
je short 0040103D로 분기가 나뉘는 것을 알 수 있다.
그럼 eax와 esi 값을 알아보자.

GetDriveType을 하면 eax에 3이 저장
그러고 조건문 전까지 eax = 1, esi = 00401003이 저장되어있어 jmp를 못한다. 따라서 esi값을 바꿔주거나 조건문을 변경해야된다.
그래서 cmp eax, esi를 cmp eax, eax로 바꾸면 je에서 점프되므로 속일 수 있었다.

728x90
반응형