[레나 튜토리얼] - 5

oogu ㅣ 2022. 8. 9. 22:32

VisualSite Designet.exe 실행 ㄱㄱ

 

첫 번째 창이 뜬다.

아래 문자열을 확인해 보면 Number of trials 9 라고 나와있다.

체험판 버전이라 9번 남은거 같다. ㄷㄷ

두 번째 창이 뜬다.

두 번째 창을 닫고 프로그램을 닫으면 

세 번째 창이 뜬다.

광고 인거 같은데..

 

프로그램을 실행하면 첫 번째 창과 세 번째 창이 안뜨게 패치해야한다!

Ctrl + f8 로 창이 어디서 뜨는지 확인하는데 너무 오래걸리면 Call Stack를 이용한다.

break point 없이 F9 눌러 프로그램을 실행하고  멈춤을 누른다.

다음 K를 누르면 어디서 어떤 함수가 호출되어있는 보여준다. - > Call Stack

지금 첫 번째 창이 뜨고 멈췄기 때문에 어디가에 첫 번째 창을 출력하는 함수가 존재한다!

Call Stack 에서 시스템 주소가 아닌 곳에서 찾다보면 489912에서 첫 번째 창이 뜨는걸 알 수 있다.

489912 이전에 분기문이 세 개 존재한다.

세 개에 분기문이 모두 489912를 넘어간다. 따라서 어떤 분기문이 맞는지 확인할 수 없어 세 가지 분기문을 하나씩 JMP 문으로 패치하고 실행해본다!

1번
2번
3번

패치된 프로그램을 하나씩 실행해보자!

 

_1.exe 는 아무 반응이 없고

_3.exe 는 첫 번쨰 창이 안뜨는 대신 새로운 창이 뜬다.

 

_2.exe 는 첫 번째 창이 안뜨고 두 번째 창이 바로 뜨는 걸 봐서 _2.exe 가 맞는 패치인거 같다.

하지만 여전히 세 번쨰 창은 뜬다.

_1.exe, _3.exe 는 삭제 ㄱㄱ

 

패치된 _2.exe 를 올리디버거로 올리고 분석을 실시한다.

광고창이 뜬 상태에서 Call Stack를 확인해보면 Visualsi 에서 광고창을 나오게 하는거 같다.

480c24를 실행하면 광고창이 출력된다.

 

프로그램이 끝난 후 출력됨으로 프로그램 실행에 지장을 주지않아 NOP로 패치한다.

저장 ㄱㄱ

패치된 프로그램을 실행하면 두 번째 창이 뜨고 프로그램 종료 후 광고창이 뜨지 않은걸 확인할 수 있다!

성공 ㅋ

'레나 튜토리얼' 카테고리의 다른 글

[레나 튜토리얼] - 7  (0) 2022.08.10
[레나 튜토리얼] - 6  (0) 2022.08.10
[레나 튜토리얼] - 4  (0) 2022.08.09
[레나 튜토리얼] - 3  (0) 2022.07.31
[레나 튜토리얼] - 2  (0) 2022.07.31