관리 메뉴

Gyejoong's Information

레나 리버싱 - Key file Reverse Me 본문

Study/리버싱

레나 리버싱 - Key file Reverse Me

연계중 연계중 2017.05.20 22:19

 


7번 문제를 실행한 결과입니다. 평가 기간이 만료 되어서 새로운 라이선스를 구매하라는

메시지입니다. 분석을 해보도록 하겠습니다.

위 그림에서 첫 번째로 확인해야 할 것은 CMP 구문입니다. 이 구문에 breakpoint를 설정하고

디버깅을 실행하겠습니다.


EAX값과 -1을 비교하는 것을 확인 할 수 있습니다. EAXFFFFFFF입니다. , -1이기 때문에

같은 값이므로 0을 리턴 합니다.


JNZ 구문은 0이 아니면 점프하라는 의미이기 때문에 점프하지 않고 다음구문인 실패 메시지창을 출력하는 구문으로 이동합니다. 위 그림에서 확인할 수 있는 점은 Keyfile.dat 파일을

생성한다는 점입니다. Keyfile.dat을 생성하고 다시 디버깅을 실행해보도록 하겠습니다.

 


Keyfile.dat을 생성하고 난뒤에는 EAX값이 44인 것을 확인 할 수 있습니다. CMP구문에서

0이 아닌 값을 리턴하기 때문에, 0040109A주소로 점프하게 됩니다.


 

ReadFile을 통하여 파일을 읽어서 값을 비교하여 일치한지 비교하는 것을 확인 할 수 있습니다. keyfile.dat에 'A‘라는 값을 넣고, 디버깅을 해보겠습니다.


위 그림과 같이 CMP DWORD PTR DS:[402173], 10에서 00402173의 값이 1인 것을

보아, keyfile.dat파일의 개수를 비교하는 것을 확인할 수 있습니다. 16진수로 10이니까 A16개 넣고 다시 디버깅을 해보겠습니다.

 

 


AL16진수 47('G')을 비교하는 구문입니다. ALG랑 같으면 ESI1증가 시키는

구문입니다. 그리고, CMP ESI 8 구문의 뜻은 G8개이상 이여야 성공이라는 뜻이 됩니다.

총 정리하면, 문자의 개수가 16개이고, G의 개수가 8개이면 성공입니다. 값을 넣고 테스트

해보겠습니다.


 keyfile의 값을 넣은 결과 성공한 모습입니다.

 

저작자 표시
신고

'Study > 리버싱' 카테고리의 다른 글

레나 리버싱 - Key file Reverse Me  (0) 2017.05.20
abex crack me 5번 문제풀이  (0) 2017.05.20
레나 리버싱 Part10.Tut Reverse Me 문제풀이  (0) 2017.05.20
abex - crack me 2번 문제풀이  (0) 2017.05.20
0 Comments
댓글쓰기 폼