ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CodeEngn Advance RCE 1
    $ 리버싱 $/CodeEngn Advance RCE 2019. 7. 16. 14:30

    문제 파일을 열어보겠습니다.

     

     

    이런 창이 뜨고 약 13초? 있다가 꺼지는 느낌? 입니다.

     

    먼저 패킹이 되어있는지 한번 확인해 보죠 !ㅎ

     

    UPX로 패킹이 되어있습니다.

     

    그리고 이제 확인해 보겠습니다.

     

    먼저 올리디버거로 열어보면 다음과 같습니다.

     

    위처럼 Autoit script가 뜨는 거로 보아 안티 디버깅이 걸려있는것 같습니다.

    안티 디버깅 함수중에서 찾아보니 IsDebuggerPresent 함수를 찾아 가봅시다.

     

     

    하나씩 내려가 보면 결국에 바로 밑인 40E967에서 TEST EAX, EAX 로인해서 JNZ에서 분기를 하게 되서 4338DE로 가게되고 해당 주소에서 위의 메시지 박스가 생성됩니다.

     

     

    그래서 40E967주소에 있는 TEST EAX, EAX를 CMP EAX, EAX로 변경을 해서 분기를 피해보겠습니다.

     

    분기를 피한것을 확인 할 수 있습니다.

     

    그렇다면 변경한 부분을 저장하고 이제 시간과 관련된 함수를 찾아 보겠습니다.

    다시 디버깅을 시작하고 해당 프로그램에서 사용하는 모든 함수를 확인해 보겠습니다.

     

     

    Sleep 함수보다도 timeGetTime 함수에 초점을 맞추었습니다.

     

    timeGetTime() 함수는 윈도우가 시작되어서 지금까지 흐른 시간을 1/1000초 단위로 DWORD형을 리턴하는 함수입니다.

     

    그렇기 때문에 프로그램을 시작할때 timeGetTime 함수를 실행시켜서 시작시간을 저장하고 몇초뒤의 값을 비교해서 같으면 종료 하도록 했을 것 으로 생각이 됩니다.

     

    그렇기 때문에 모든 timeGetTime함수를 bp 걸어서 가장 먼저 걸리는 함수에 비교하는 값이 있을 것으로 예상이 됩니다.

     

    그러면 이제 한번 timeGetTime함수에 bp를 걸어 보겠습니다.

     

    Set breakpoint on every call to timeGetTime 을 선택함으로서 모든 timeGetTime함수에 BP를 걸도록 했습니다.

     

    그리고 F9로 가장 맨처음 사용된 함수 주소로 가보겠습니다.

     

     

    444C44 주소로왔습니다.

     

    좀만 아래로 내려가면 CMP 비교 구문이 있네요

     

    이 값들의 차를 JMP 구문을 지나서 비교할때 사용합니다.

     

     

    JMP를 하면 444D38 주소로 오게 되는데 바로 아래에 CMP에서 아까 ESI와 EAX를 SUB한 값인 2B24와 337B와 비교를 하게 됩니다.

     

    그렇다는 것은 337B초가 지나면 종료가 되게끔 하는것 같습니다.

     

    337B는 정수로 13179초 입니다.

     

    13179를 MD5 해시값으로 바꿔보면 다음과 같습니다.

     

     

    Clear!

     

     

    ===============================================================================================

    또 다른 풀이!

     

     

    Autoit v3.3.0.0 이라고 되어 있기 때문에 디컴파일러 인 Exe2Aut 프로그램을 이용해서 한번 확인해 보겠습니다.

     

     

    13.179 라고 되어있습니다. 해당 숫자는 문제에 필요한 초입니다.

     

     

    Clear!

     

     

    '$ 리버싱 $ > CodeEngn Advance RCE' 카테고리의 다른 글

    CodeEngn Advance RCE 6  (0) 2019.07.19
    CodeEngn Advance RCE 5  (0) 2019.07.18
    CodeEngn Advance RCE 4  (0) 2019.07.18
    CodeEngn Advance RCE 3  (0) 2019.07.17
    CodeEngn Advance RCE 2  (0) 2019.07.16

    댓글

Designed by Tistory.