본문 바로가기
Study/Reversing

[리버싱] CD.exe 문제풀기

by graygreat 2017. 8. 24.
728x90
반응형


문제를 풀어보자.



'HD를 CD-Rom으로 인식하게 하라'가 문제이다.


올리디버거로 분석해보자.



생긴건 이러하다.


Code Window만 보면



주석을 보면 MessageBoxA, GetDriveTypeA와 같은 API가 있다.


MessageBoxA는 메시지박스를 띄우는 API이고, GetDriveTypeA는 드라이브 타입이 어떤 타입인지 확인하는 API이다.


한줄씩 분석하다보면 ESI레지스터와 EAX레지스터의 값이 바뀌는 것을 볼 수 있다.




EAX레지스터는 GetDriveTypeA가 실행되면 값이 3이 되는 것을 볼 수 있다.


ESI는 증가하고 EAX는 값소하다가 401024를 보면 서로 비교를 한다.


비교 후, 같으면 JE 명령어로 인해 CD.0040103D로 가게되고 아니면 계속 진행 된다.


문제 해결 방법은 두가지이다.


1. CMP에서 비교하는 대상을 같게 해준다.


2. ESI나 EAX 각각의 값을 변경하여 같게 해준다.



우선 1번 방법을 해보자.



비교 대상을 같게 해준 다음 진행시키면...




해결!!


2번 방법


         


ESI값을 EAX값과 똑같이 만들어 준다.


해결!!!!


반응형

댓글