파일을 실행해보았다.
-모든 성가신 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 |