코드엔진 basic 01번
2021. 9. 25. 13:58ㆍWargame 공부/CodeEngn basic
파일을 실행해 보면
위의 두 개의 창이 뜨는 것을 볼 수 있다.
프로그램을 디버깅하기 전에 PE View를 사용해서 프로그램 시작점인 Entry Point(Image Base + RVA) 401000인 것을 확인할 수 있다.
이제 올리 디버거를 사용하여 프로그램을 천천히 확인해 보면
401018 주소의 GetDriveType함수가 전달받은 RootPath가 어떠한 종류의 드라이브인지 판별하여 결과 값을 eax에 저장하고 그 결과 값을 연산하여 4010214 주소의 cmp 함수를 이용해 비교한 뒤 결과 값이 같으면 성공 메시지를 보내는 것으로 보이는데 GetDriveType함수에 브레이크 포인트를 걸고 실행 한 뒤 eax 레지스터를 확인하면 3인 것을 볼 수 있고 40101D부터 401023까지의 연산식을 확인하면 eax를 2번 빼고 esi를 3번 더해 비교하는 것을 알 수 있다. 결과 값이 같아야 하므로 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 |