Wargame/Lena’s Reversing for Newbies

Lena's Reversing for Newbie 13 Write-Up

0xe82de_ 2019. 8. 6. 19:26
728x90
728x90
728x90

파일 링크: https://tuts4you.com/e107_plugins/download/download.php?list.17

 

Downloads / Lenas Reversing for Newbies - Tuts 4 You

 

tuts4you.com

Tutorials Index: 13. The use of API's in software, avoiding doublechecking tricks

사용도구: 올리디버거 2.01

 

Lena's Reversing for Newbie 13(이하 원본파일) 분석해보자.

 

[사진 1]

원본파일을 실행하면 설치를 진행한다.

 

 

[사진 2]

설치한 프로그램을 실행하면 위와 같은 로딩 창이 뜬다.

 

 

[사진 3]

프로그램이 실행되면 위와 같은 모습이다.

 

 

[사진 4]

좌측의 About 메뉴를 클릭하면 위와 같이 Enter Registration Code 버튼을 통해 등록을 할 수 있다.

 

 

[사진 5]

Username, Registration Code 총 2개의 값을 입력하여 등록을 할 수 있다.

 

 

[사진 6]

등록을 실패하면 "Invalid code." 문자열을 포함한 메시지 박스를 확인할 수 있다.

 

 

[사진 7]

프로그램을 실행한 후 올리디버거의 상단 메뉴 중 File - Attach... 기능을 통해 위와 같이 실행 중인 XoftSpy 4.13 프로세스를 Attach 하자.

 

 

[사진 8]

프로그램을 올리디버거로 실행한 후 code 섹션에서 우클릭 - Search for - All referenced strings 기능을 클릭하면 위와 같이 사용되는 문자열들을 확인할 수 있다. "Invalid code" 문자열을 검색해보자.

 

 

[사진 9]

0x004174A5 주소에서 "Invalid code." 문자열을 스택에 저장하고 있다.

 

 

[사진 10]

해당 주소를 살펴보면 0x00417690 함수를 실행하고 리턴 값이 0x0이 아니면 0x004174E3 주소로 점프한다. 리턴 값이 0x0이기 때문에 0x004174E3 주소로 점프하지 않고 "Invalid code." 문자열을 출력한다.

 

 

[사진 11]

0x4174E3 주소로 점프하면 "Congratulations! successfully registered" 문자열이 사용된다. 일단 이 곳으로 점프를 하도록 패치해야 한다.

 

 

[사진 12]

따라서 0x0041749C 주소으 JNZ 명령어를 JZ 명령어로 패치하여 0x004174E3 주소로 점프한 후 실행해보자.

 

 

[사진 13]

그러면 위와 같은 내용의 메시지 박스를 확인할 수 있다.

 

 

[사진 14]

하지만 About 메뉴를 다시 클릭하면 라이센스가 등록되지 않았다고 한다.

 

 

[사진 15]

다시 code 섹션에서 우클릭 - Search for - All referenced strings 기능을 클릭하면 위와 같이 "This license of XoftSpy has been registered" 문자열을 확인할 수 있다.

 

 

[사진 16]

해당 주소로 이동하여 살펴보면 0x00401492 주소의 CALL 명령어에 의해 0x004350A0 함수가 실행되고 리턴 값에 따라 0x004014AD 주소로 점프하여 [사진 14]에서 확인했던 라이센스가 아직 등록되지 않았다는 문자열을 사용한다.

 

 

[사진 17]

따라서 루틴의 맨 윗 부분에 브레이크 포인트를 설정하고 실행하면 딱 이 곳에서 중지된다.

 

 

[사진 18]

그리고 0x004350A0 함수를 실행하면 리턴 값이 0x0이기 때문에 0x004014AD 주소로 점프하게 된다.

 

 

[사진 19]

따라서 위와 같이 JZ 명령어를 JNZ 명령어로 패치하여 리턴 값이 0x0일 때 0x004014AD 주소로 점프하지 않도록 한다.

 

 

[사진 20]

그리고 실행하고 About 메뉴를 클릭하면 위와 같이 라이센스가 등록된 것을 확인할 수 있다.

728x90
728x90