리버싱 엔지니어링/lena's reversing

lena's reversing for newbies 01

흰싸라기 2022. 2. 5. 01:06

1. 실행 

reverseMe.exe 파일을 실행해보면 아래와 같은 메시지 박스 등장.

2. 디버깅

Ollydbg를 통해 reverseMe.exe를 디버깅

 

 - 문자열 찾아보기 (Search for -> All referenced text strings)

실행했을 때의 메시지박스 문자열 확인할 수 있었고

"You really did it! Congratz !!!!" 문자열을 발견하여 클릭해서 가보니

메시지 박스로 출력됨.

따라서, 해당 메시지 박스를 출력하도록 수정해야함을 알 수 있음.   

 

3. 코드 살펴보기

 

2번에서 처음 확인했던 메시지박스에서 확인한 문자열을 클릭하여 해당 코드 살펴봄.

JNZ(=JNE) : 값이 같지 않으면 점프 

메시지박스 출력 전 조건 분기문, 따라서 조건에 상관없이 점프하도록 수정

JNZ -> JMP

 

코드 수정 후 다시 실행하면 아래와 같은 메시지박스가 출력됨 

 

4. 코드 살펴보기(2)

 

새로운 메시지 박스 코드 확인 

 

새로운 메시지박스는(주소 : 4010F7) 어떤 방식으로 호출된 것인지 확인

다양한 조건분기문이 존재 

중간에 4010F7로 넘어가지 않고 마지막 JMP 00401205로 가기 위해서 조건 분기문을 모두 무시하도록 수정.

-> JNZ, JMP,JL,JE 명령어들을 NOP으로 수정

NOP : 아무것도 처리하지 않고 쉬어가도록 하는 명령어 

위와 같이 수정 후 재실행하면 아래와 같은 목표 메시지박스 출력 성공.