Halo World

[크랙미] abex 크랙미 4번 풀이 본문

보안/REVERSE ENGINEERING

[크랙미] abex 크랙미 4번 풀이

_Yeony 2015. 11. 30. 23:44

 

crackme4.exe

안녕하세요! 오랜만에 글을 쓰네요ㅎㅎ

오늘은 크랙미 4번 문제를 풀어보았습니다.

문제는 위에 첨부되어 있습니다.

 

먼저 4번 문제를 실행하면 나타나는 화면인데요.

올바른 시리얼 넘버를 입력하는 문제인 것 같습니다.

 

올리디버거로 실행해서 F8을 몇번 누르다 보면 본 함수가 등장합니다.

여기서 문자열 목록을 보면

 

이렇게 성공메세지들이 보이는데 일단 Well done!으로 가보았습니다.

 

흠... 근데 보시면 일반 코드와는 다르게 생겼다는 것을 느끼게 됩니다.

MSVBVM 이런 함수드을 보니 비주얼 베이직으로 쓰여졌군요ㅎㅎ

 

비주얼 베이직으로 쓰인 함수들을 목록을 보았습니다. search for 에서 all intermodular calls를 이용해 보시면 됩니다.

함수들 이름을 보다보면 vbaStrCmp를 보실 수 있는데요. Cmp라는 것을보니 여기서 문자열을 비교한다는 것을 알수 있겠네요!

한번 그쪽으로 가보았습니다.

 

여기네요ㅎㅎㅎ 여기에 브레이크 포인트를 걸고 실행시켜 보았습니다.

 

보시면 브레이크 포인트가 걸렸을 때 레지스터의 상태입니다. ECX에 "2446725"라는 것이 눈에 띄네요.

 

한번 vbaStrCmp 함수 내부로 들어가 보았습니다.

아직 정확히 분석할 능력은 안되지만.. 느낌상 아까그 ECX의 값과 넣은 값을 비교할 것 같네요...

문제의 시리얼 넘버가 ECX안에 있던 2446725 인 것 같네요!

 

한번 입력해 보았습니다.

 

역시 예상이 맞았군요! 성공입니다ㅎㅎ