CafeM0ca

[리버싱]abex crackme2 본문

Hacking/abex crackme

[리버싱]abex crackme2

M0ca 2018. 1. 15. 17:13
반응형

abexcm2.exe

사용한 툴: immunity debugger

1에 비해 난이도가 올라간 느낌?.. 조사해보니 visual basic으로 짜여져 있다.


풀어보자!


프로그램을 실행시켜보면 CALL <JMP.&MSVBVM60.#100>이라는 곳으로 도착하는데 여기가 메인함수부분이다. F7로 함수 내부로 들어가보자.

계속 실행시키다보면 창을 띄울 준비를 한다.

그리고 CALL MSVEVM60.6600A4C2에서 창이 나온다.

이름을 입력하고 시리얼키를 입력받는데 아마 이 문제가 원하는건 시리얼키를 맞추는 것 같다.

그리고 저 창이 출력된 후 디버거가 다음 명령을 듣지 않는다. 즉 저 함수 안에 check와 about, quit를 입력받는 무언가가 있다는 의미다.

근데 이런식으로 하나하나 분석하려면 시간과 노력이 많이들테니 무슨 함수들이 있고 필요한것만 분석하는게 좋을 듯 하다.


일단 프로그램 자체는 시리얼이 맞을 때 까지 계속 반복하는걸 보니 반복하는 루틴이 있다는 말이다. 시리얼을 체크하는 부분에서 비교할테니 그 부분을 찾아내면 되는데 리버싱 초짜인 모카한테는 넘나 힘든 것.. 요즘 visual studio에 라이브러리 설치가 안돼서 정신없는데 ㅠㅠ..

위의 사진 처럼 아무렇게나 적어주고 bp(break point)를 잡아서 분석해보자. bp는 시리얼이 틀릴경우 띄우는 메시지가 있는 부분으로 잡아준다.

(우클릭 -> search for -> all reference text string에 있다.) bp는 F2

시리얼을 일부로 틀린 후 스택창을 봤는데 밑에 Check라는 유니코드가 보인다. 그래서 좀더 내려봤는데..

스택창을 한번 봤는데 틀린 시리얼과 이름이 push되어 있다. 

아니 근데 뭔가 수상한 유니코드가 보인다. B194C7C5라고..?

그래서 넣어봤다...

오잉?....... 

이 프로그램은 시리얼과 입력받은 시리얼,이름을 스택에 넣고 시리얼끼리 비교하는 프로그램이었다.

뭔가 엄청 허무한듯.. 


3일동안 잡고 있었는데 이게 멘탈이 조금 회복된듯 

반응형

'Hacking > abex crackme' 카테고리의 다른 글

[리버싱]abex crackme3  (0) 2018.01.16
[리버싱]abex crackme1  (0) 2018.01.13
Comments