공부해요/리버싱_핵심원리

11장. Lena's Reversing for Newbies

yenas0 2024. 9. 24. 17:02
반응형

 

파일을 실행해보았다.

 

-모든 성가신 Nags를 업애라

- registration code를 찾아라

 

확인버튼을 누르면 위에처럼 뜬다.

 

화면에 파란 글씨에서 SmartCheck를 사용하라함.

 

목표1. 메시지 박스 제거

"Get rid of all Nags"

올리디버거를 통해 파일을 열어보자

 

MSVBVM50.ThunRTMain함수를 찾을 수 있음

 

목표인 메시지 박스를 제거하려면 메시지 박스 함수 호출 부분을 조작하면 됨.

[Search for] - [All intermodular call] 사용해서 API 호출 목록을 확인하였다.

메시지 박스 함수를 하나 발견하고 모든 rtcMsgBox를 호출하는 코드에 BP를 설치해둔다.

 

이 상태로 프로그램을 실행시키면 break point가 설치된 곳에서 실행이 멈추게 된다.

멈춘 곳[402CFE]의 주변을 보니 메시지 박스의 문자열을 확인할 수 있다.

 

이를 제거하기 위해서

함수 시작을 나타내는 스택 프레임의 프롤로그를 찾았다.

이 함수 내에서 메시지 박스가 실행되므로 바로 리턴하도록 바꾸었다.

 

 

목표2. registration code 찾기

코드를 찾아야된다. 일단 틀렸을 때 무슨 문자열 뜨는지부터 확인해보기위해서 프로그램을 실행시킨 후에 아무 문자열이나 넣어보았다.

 

저 문자열을 검색해보았다. [Search for] - [All referenced text strings]

 

 

해당함수를 더블클릭해서 따라가보았다

 

주변에서 문자열을 찾을 수가 있다.

 

찾은 문자열 바로 아래에서 VB에서 문자열을 비교하는 함수를 호출하고 있음을 알 수 있다. 

위의 "I'mlena151"과 문자열을 비교한 뒤에 메시지 박스를 출력하는 것으로 유추할 수 잇다.

 

 

조금 더 위로 올려보면

성공시에도 같은 문자열과의 비교를 통해 동일할 시에 성공문자열을 출력함을 알 수 있다.

 

해당 RegCode를 넣어서 맞는지 확인해보자.

 

맞는 문자열임을 알 수 있다.

반응형

'공부해요 > 리버싱_핵심원리' 카테고리의 다른 글

14. 실행 압축  (0) 2024.10.08
13. PE File Format  (1) 2024.10.02
10장. 함수 호출 규약  (0) 2024.09.22
9장. Process Explorer - 최고의 작업 관리자  (0) 2024.09.22
8장. abex' crackme #2  (0) 2024.09.18