본문 바로가기

모의해킹/리버싱

MFC 프로그램 크랙 : 레나 챌린지 (Level 5)

728x90

VisualSite Designer 체험판 크랙

10번만 사용가능한 프로그램이다.

 

• 크랙 해야 하는 부분

1. number of trial left 10  횟수 제한 우회

프로그램을 실행하기 전부터 체험판이라는 걸 확인하는 부분이 있는 거 같다.

 

F8로 하나씩 실행을 시키다보면 프로그램이 실행이 되는 부분이 있다. 그 부분에 브레이크 포인트를 걸어 F7로 들어간 다음 다시 F8로 프로그램이 실행되는 부분까지 반복한다.

 

73DDC1CC 까지 들어가면 해당 부분은 MFC42 부분이기에 EXE이 아니기에 F2로 브레이크 포인트가 안 걸린다.

해당 부분은 Hardware 브레이크 포인트를 걸어줘야 한다.

* 하드웨어 BP는 CPU단에서 거는 브레이크 포인트이다. 

F2는 소프트웨어 BP이다.

 

F2를 사용해 브레이크 포인트를 걸어준다.

 

이번에는 73DE5446 주소이기 때문에 하드웨어 브레이크 포인트를 걸어준다.

 

이러한 메시지가 보이는 것은 윈도 GUI 메시지 기반 프로그래밍에서 동작한다.(실시간으로 메시지를 보여준다) 즉, 이미 모든 절차가 끝났다는 의미이다.

 

그렇기 때문에 마지막으로 걸었던 브레이크 포인트로 이동한다.

 

JLE에서 통과하지 못하면 밑으로 실행이 되면서 00489912 주소가 실행이 된다.(이 부분은 체험판 프로그램이 실행이 되는 부분이다)

해당 부분의 ZFlag를 0에서 1로 수정을 한다.

 

실행을 시키면 이미 기간이 지난 트리얼이다라는 문구가 뜬다.......

즉, 004898F1 는 횟수를 체크하는 구간이기 때문에 더 위 주소로 올라간다.

 

헷갈리지 않게 주석을 달아주고, 횟수를 체크하는 구간의 위 부분의 ZFLAG를 1에서 0으로 수정을 해준다.

 

프로그램이 자동으로 실행이 되는 부분을 넘어간다.

그렇다면 004898E1 부분이 우리가 찾는 크랙된 공간이다. 즉, 해당 부분을 ZFLAG를 수정하는 게 아니라 JNZ에서 JMP로 수정을 한 다음 프로그램을 저장한다.

 

 

2. 광고를 제거

프로그램을 종료를 하면 위 사진처럼 광고가 나온다.

 

해당 부분에서 디버그를 멈추고 Call stack를 확인해 준다.

 

해당 부분에 exe 실행이 되는 부분이 00480C29 주소이기에 부분으로 이동을 한 다음 브레이크 포인트를 걸어준다.

 

프로그램을 실행시킨 후, 종료를 하면 브레이크 포인트 때문에 해당 광고가 노출이 안되었으며 F8로 실행을 시킬 때 광고가 노출이 되었다.

 

스택을 확인하면 00480C29에서 부터 온다는 걸 알 수 있다.

 

이 부분에서 광고가 출력이 된다.

 

해당 부분을 NOP으로 채운다 (스택이 바뀌는지 확인한 다음 NOP으로 채워야 함 -> 스택 바뀌면 안 됨)

수정한 부분을 저장을 한 후 실행을 시키면 광고가 없어져있다.