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
반응형
'리버싱 입문' 카테고리의 다른 글
[리버싱 입문](6)[함수 호출 규약] (0) | 2025.02.10 |
---|---|
[리버싱 입문](5)[abex crackme 3] (0) | 2025.02.07 |
[리버싱 입문](4)[abex crackme 2] (1) | 2025.02.06 |
[리버싱 입문](2)[PE파일] (0) | 2025.02.04 |
[리버싱 입문](1)[PE파일, 레지스터와 메모리] (0) | 2025.02.03 |