ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • abex' crackme 2 풀이
    Reversing/abexcm 2019. 3. 29. 19:44

    드디어 티스토리 글쓰기 에디터가 바뀌었군요! 사실 전에 게시판 같던 에디터가 불편해서 다시 네이버 블로그로 갈아탈까 생각했지만, 이제 그런 고민을 더 안 해도 될 것 같아요 몹시 신나네요 ㅎㅎㅎ

    바로 풀이 들어가겠습니다.

     

     일단 프로그램을 실행했을 때 나오는 창입니다.

    처음에는 아무거나 넣는 겁니

    다. Name : 1234, Serial : 1234

    했더니 틀렸다며 약올리네요.

    EP는 이러합니다. 아직은 크게 힌트가 될만한 게 없어요

     

    조금 위로 올리면 EP 직전까지 MSVBVM60.------- 하면서 뭔가가 잔뜩 있는데 vba니 Var이니 하는 거 보면 함수 같죠?

    뭐랄까, 이것들은 VB 전용 엔진들이에요. C의 내장함수처럼 미리 뭔가를 명시하는거죠. 일단 그렇게 생각하고 넘어가요.

    그럼 아까 봤던 프로그램에서 띄워지는 창이 text strings 에 있겠죠? 하면 우클 릭 - Search for - All referenced text strings 루트로 문자열들을 찾아봅시다. 그러면 저렇게 아까 봤던 창들의 문자열이 여럿 나와요.

    그 중 실패했을 때 뜨던 창으로 와봅시다. 이제 생각을 해보죠. 만약 Name 값과 Serial 값이 올바른 값일 때 나오는 성공 화면과 실패 화면을 나눠주는 역할을 하는 게 뭘까.

    조건 분기죠? 올바른 값일 때에는 성공 화면을, 틀린 값일 때에는 실패 화면을 띄워줘야 하니깐요.

    이제 여기가 성공 화면이 나올 때인데, 여기서의 JE 명령은 TEST AX, AX 뒤에 40340C? 로 가네요. 지금 위치랑 좀 차이가 나는데, 어딘지 보면 아까 그 실패 화면의 위치입니다. 그러면 이 JE 명령 이전에 PUSH EDX 과 PUSH EAX 를 하고 이를 비교하는 건 EDX의 값과 EAX의 값이 Name과 Serial의 값이기 때문이겠죠? 그러니 이 위치에서의 EDX 값과 EAX 값을 보기 위해 여기에 BP를 걸고 실행합시다

    실행한 뒤 EAX - 19F27C, EDX - 19F26C 가 나왔습니다. 근접한 값이네요! 아마도 두 값 모두 1234로 놓아서 그런 게 아닐까 싶습니다. 


    그럼 스택에 저장된 그 값을 찾으러 갑시다. 스택창에서 go to - expression으로 가겠습니다.

    아래에 제가 입력했던 1234, 그 위에는.. 음, 시리얼값 같죠?

    그렇네요ㅋㅋㅋ 이게 어떻게 되는지는 나중에 설명하겠습니다. 여기까지 이해하는 데에도 제가 좀 시간이 걸려서.. 힘드네요.

    밥 먹으러 가겠습니다. 10시 전에 아마 3 풀이 올릴 거 같네요. (과연..?)

    2019.3.29

    'Reversing > abexcm' 카테고리의 다른 글

    abexcm1 풀이 - IDA  (0) 2019.05.26
    abex' crackme5 풀이  (0) 2019.03.29
    abex' crackme 4 풀이  (0) 2019.03.29
    abex' crackme 3 풀이  (0) 2019.03.29
    abex' crackme1 풀이  (0) 2019.03.26
Designed by Tistory.