Reverse engineering
[CodeEngn] RCE Basic L01
Tjdmin1
2025. 3. 11. 12:11
https://codeengn.com/challenge/rce_basic
CodeEngn [코드엔진] 리버스엔지니어링 컨퍼런스
CodeEngn Challenge 리버스엔지니어링을 처음 접하는 분들을 위한 초급단계 Manager >> Auth | Checkin List | Hall of Fame Challenge >> Basic | Advance | Pro | Malware | Crypto | Mobile RCE Basic Level Description Author Download Basic L01
codeengn.com
HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가
Problem Solving
여기서 loc_40103D가 호출 되어야지 CD-Rom으로 인식하는 것입니다.
GetDriverTypeA가 호출되고 나서 esi가 3번 1이 더해지고 eax가 2번 1이 빠집니다.
그리고 두 값을 비교하여 Zero Flag가 1로 설정되면 ( 값이 같으면 ), loc_40103D로 이동되는 것입니다.
즉 inc esi * 3 = esi = 3
dec eax = eax = n(리턴 값) - 2
eax = esi, 즉 n - 2 = 3
n = 5가 됩니다.
따라서 GetDriveTypeA의 return 값은 5가 되어야 합니다.