야금야금

Reversing #2_Crackme1 본문

SWING/Reversing

Reversing #2_Crackme1

hyk0425 2021. 3. 28. 12:26

[Crackme #1]

프로그램 설명 : 드라이브 타입을 확인하여 해당 타입의 메시지 박스를 출력한다.

목표 : 단순 패치를 이용하여 해당 상황의 메시지 박스가 아닌, 원하는 메시지 박스를 출력한다.

 

프로그램 시작 시 "Make me think your HD is a CD-Rom" (=HD가 해당 프로그램을 CD-Rom이라고 인식하게 만들어라) 메시지 박스가 출력된다.

확인을 누를 경우 "Nah… This is not a CD-ROM Drive!"라는 메시지 박스가 출력되면서 프로그램이 종료된다.

 

본 패치(크랙)의 목표는 코드를 분석 후 수정하여 "Ok, I really think that your HD is a CD-ROM! :p"라는 메시지 박스가 출력되는 것이다.

 

아래는 본 프로그램의 EP코드이다.

 

└ crackme #1 의 EP코드

401026주소 명령어를 보면 본 프로그램은 EAXESI값을 비교하여 두 값이 같을 경우 원하는 메시지 박스를 출력하고 다를 경우 실패 메세지 박스를 출력하는 것을 알 수 있다.

 

└프로그램 크랙(패치)
└수정된 명령어

 

따라서 원하는 메시지 박스를 출력하기 위해서는 JE(Jump if Equal, 조건분기명령어)명령어를 JMP 명령어로 변경하여 원하는 메시지 박스의 주소로 넘어가 출력하면 된다.

      

└패치(크랙) 전 실행 결과
└패치(크랙)  후 실행 결과

 

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

Reversing #4_Lena's Reversing for Newbies  (0) 2021.03.28
Reversing #3_Crackme2  (0) 2021.03.28
Reversing #1_Hello World  (0) 2021.03.28