SH1R0_HACKER

Basic RCE L01 본문

Reversing/CodeEngn

Basic RCE L01

SH1R0_HACKER 2020. 10. 18. 22:45

HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가

 

Author: abex

 


[ 프로그램 실행 ]

 

 


[ 디버거 분석 ]

저기 보이는 GetDriveTypeA의 리턴값이 무엇이 되어야하는지 묻는 문제이다.

 

GetDriveTypeA 함수에 대한 정보는 아래의 사이트에서 확인할 수 있다.

docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdrivetypea

 

GetDriveTypeA function (fileapi.h) - Win32 apps

Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.

docs.microsoft.com


[ 크래킹 ]

처음에 프로그램을 실행 할 때 보았던 이 메시지에 따라 HD가 CD-Rom으로 인식하게 만들어보자.

 

디버거로 프로그램 불러오고 실행하다보면 EAX와 ESI에 있는 값을 비교하는 부분이 나온다.

레지스터를 보면 EAX와 ESI가 다른것을 알 수 있다.

EAX와 ESI를 비교한 값이 같으면 004013D로 점프하라는 부분이 보인다.

하지만 우리는 다른것을 확인했으니깐 점프하지않고 코드가 계속 진행하여 MessageBoxA를 띄운다는것을 알 수 있다.

 

이 부분을 수정해보자.

EAX와 ESI를 비교한 값이 같으면 점프하는게 아닌 무조건 점프하라는 식으로 말이다.

 

JE를 JMP로 바꿔주었다.

 

우리가 원하는 메시지박스를 띄울 수 있다.

'Reversing > CodeEngn' 카테고리의 다른 글

Basic RCE L06  (0) 2020.10.21
Basic RCE L05  (0) 2020.10.19
Basic RCE L04  (0) 2020.10.18
Basic RCE L03  (0) 2020.10.18
Basic RCE L02  (0) 2020.10.18