본문 바로가기
Reversing

[Lena] Lena Tutorial 01

by 8희 2023. 3. 28.

 

먼저 reverseMe 파일을 이뮤니티 디버거에서 실행해봤다.

 

 

F8을 통해 계속 실행했더니, 해당 지점에서 새로운 라이센스를 구매하라는 내용의 메시지 박스가 떴다.

 

 

Ctri+F2로 다시 시작한 후,

FileName과 CreatFile이라고 주석이 있는 곳까지 내려가 보니 JNZ 분기문이 나왔다.

JNZ는 0이 아닐 때 점프하는 명령어로, ZF가 0일 때 점프한다. 

ZF는 Zero Flag로 결과값이 0일때 1(set), 0이 아닐 때 0(unset)이고, 레지스터 창에서 값을 확인할 수 있다.

 

 

현재는 ZF가 1이므로 점프한다.

만약 JNZ로 점프하지 않으면 바로 메세지가 뜨고 프로세스가 종료할 수 있다.

 

 

JNZ에서 Z를 클릭해서 1에서 0으로 바꿔줬다.

 

 

F8로 계속해서 실행하면 새로운 JNZ 분기문이 보인다.

레지스터 창에서 Z를 보면 1로 설정돼 있는 것을 확인할 수 있다.

여기서 JNZ로 점프하지 않으면 JNZ 아래의 JMP를 통해 프로세스 종료문으로 넘어가게 된다.

따라서 또 다시 Z를 0으로 바꿈으로써 JMP를 건너 뛰어야 한다.

 

 

무사히 JNZ문으로 점프해서 JMP를 건너 뛰었다.

 

 

이 상태로 끝까지 실행하면 키가 유효하지 않는다는 메시지가 뜬다.

 

 

다시 재실행하여 JMP를 건너뛰고 F8로 좀 더 내려가니 

JL(jump is less)문의 조건에 충족하면 프로세스 종료문(4010F7)으로 점프하는 것을 확인할 수 있었다.

 

 

JL문은 SF가 1일 때 점프를 하므로 이걸 무시하기 위해 S를 0으로 수정했다.

 

 

수정 후, 끝까지 실행하니 성공 메시지 박스가 떴다.

 

'Reversing' 카테고리의 다른 글

[Lena] Lena Tutorial 06  (0) 2023.03.29
[Lena] Lena Tutorial 05  (0) 2023.03.29
[Lena] Lena Tutorial 04  (0) 2023.03.29
[Lena] Lena Tutorial 03  (0) 2023.03.28
[Lena] Lena Tutorial 02  (0) 2023.03.28