코드엔진 basic 01번

2021. 9. 25. 13:58Wargame 공부/CodeEngn basic

파일을 실행해 보면

 

위의 두 개의 창이 뜨는 것을 볼 수 있다.

프로그램을 디버깅하기 전에 PE View를 사용해서 프로그램 시작점인 Entry Point(Image Base + RVA) 401000인 것을 확인할 수 있다.

이제 올리 디버거를 사용하여 프로그램을 천천히 확인해 보면

401018 주소의 GetDriveType함수가 전달받은 RootPath가 어떠한 종류의 드라이브인지 판별하여 결과 값을 eax에 저장하고 그 결과 값을 연산하여 4010214 주소의 cmp 함수를 이용해 비교한 뒤 결과 값이 같으면 성공 메시지를 보내는 것으로 보이는데 GetDriveType함수에 브레이크 포인트를 걸고 실행 한 뒤 eax 레지스터를 확인하면 3인 것을 볼 수 있고 40101D부터 401023까지의 연산식을 확인하면 eax2번 빼고 esi3번 더해 비교하는 것을 알 수 있다. 결과 값이 같아야 하므로 eax레지스터의 값을 5로 바꿔주면 성공 메시지를 확인할 수 있다.

'Wargame 공부 > CodeEngn basic' 카테고리의 다른 글

코드엔진 basic 07번  (0) 2021.09.25
코드엔진 basic 06번  (0) 2021.09.25
코드엔진 basic 05번  (0) 2021.09.25
코드엔진 basic 04번  (0) 2021.09.25
코드엔진 basic 02번  (0) 2021.09.25