ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • abex' crackme1 풀이
    Reversing/abexcm 2019. 3. 26. 22:48

    뭔가 굉장히 기분 더럽다.

    해커스쿨 putty를 키고 레벨을 풀려는데 이미 한 3주째 안 켜진다.

    아무것도 건드리지 않았고 뭔가 갑자기 이런 상황이 되서 곤란하지만, 일단 당분간 해커스쿨 풀이는 못 올리겠다는 생각이 들었다(vmware로 실습환경 구축? 조만간 해봐야지, 근데 잘 될지는 모르겠다).


    해서 다시 나뭇잎책을 폈다.

    리버싱해야지


    이 크랙미는 이미 풀어본거지만 일단 풀이를 올려본다.


    크랙미를 실행하면 창이 뜬다.

    내 HD가 CD-Rom으로 인식되게 하라는데, 일단 지켜보자. 

    이건 에러창이다. 아마 성공했을 때 뜨는 창이 또 있을 것이다.

    여기부터 본 프로그램의 시작이다.

    예상대로 에러창 밑에 성공했을 때 뜨는 창이 있다.

    -그러면 이제 저 성공창을 어떻게 띄워야 할지 고민해보자.

    그래, 고민은 좀 이따 하고 실행하면서 프로그램의 진행 과정을 살펴보자.


    일단 끝까지 다 실행해봤다.

    음.. 뭐랄까 잡히는 게 없네

    개인적으로 이 부분에서 뭔가 잡힐게 있을거 같다

    일단 해석하지면

    ESI에 1을 더하고 EAX에서 1을 뺀다.

    JMP SHORT 00401021은 왜 있는지 사실 모르겠다.

    그러고 ESI에 2를 더한 뒤, EAX에서 1을 다시 뺀다.

    마지막으로 EAX값과 ESI 값을 비교하고(CMP : CoMPare 로 생각하자)

    두 값이 같으면 바로 성공창이 뜨는 부분인 0040103D 로 점프하는 것 같다

    (JE : Jump Equal, 두 값이 같을 경우 어디어디로 점프하는 명령)


    그렇다면 EAX 값과 ESI 값을 같게 만들면 되는데,

    그것보다 쉬운 방법이 있다. 야매지만.

    JE 구문을 깔끔히 무시하고 바로 성공창이 뜨는 40103D로 점프하면 된다.

    고로, JMP SHORT 0040103D 를 입력해주면 바로 성공창이 뜨게 된다.

    그렇게 수정한 프로그램을 파일로 만든 뒤 실행시키면(crackme1 patched)

    우리가 원하던 그 깔끔한 화면이 나온다.

    두번째 풀이법으로 EAX값과 ESI값을 일치화시키는 걸 남기고 싶었는데

    왜인지 ESI값이 401001이라서 EAX값에 401000을 더하지 않으면 안 된다

    아니면 ESI값에서 401000을 빼든지..


    그러면 되는구나.. 왜 멍청하게 시도도 안했지.. 


    근데 방금 실행한 바로는 SUB ESI, 401000을 해버리면 뒤 JE 구문이 사라져서 실패했다.

    고로 일단 저 JMP 하는 방법으로 만족하자 ^..


    아 뭔가 허술한 풀이였다

    다음 풀이는 좀 제대로 써봐야겠다


    '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' crackme 2 풀이  (0) 2019.03.29
Designed by Tistory.