http://code.google.com/p/healiat/

 

휴가때 잠깐 Themida의 API Redirection을 봤고

 

복구해주는 툴을 만들어 봤습니다.

 

첫 아이디어는 간단했는데 .. 원래 Obfuscation은 한가지 방식을 걷어내면 다른 방식이 튀어나오기 마련이죠 ㅠㅠ

 

결국 처음에 생각했던 기능보다 많이 나가서, obfuscation도 해제하고, 함수코드들도 비교하는 기능까지 나갔습니다.

 

Themida를 대상으로 잡고 구현했는데, 다른 웬만한 패커의 api redirection도 해제해줄 겁니다.

 

일단 Themida는 API Redirection코드가 VM만큼 꼬여있진 않습니다.

 

VM은 이만큼 꼬여있음-> http://jz.pe.kr/42

 

 

show me the money!

 

 

Themida 본체에 돌려봤습니다. jmp 63a03f3 이런게 다 redirection임.

 

돌리고 나면

 

 

이렇게 됩니다.

 

 

이건 원순철씨가 만든 wDetector입니다. Themida로 팩돼있습니다.

 

이렇게 복구됩니다.

 

돌리고 난 뒤에 ImportREC를 쓰시면 됩니다.

 




 

 

 

  1. Commented by beist at 2012.09.14 02:23 신고

    역시 또 1빠

  2. Commented by merius at 2012.09.14 13:38 신고

    우왕 굿!

  3. Commented by at 2012.09.18 10:09

    비밀댓글입니다

  4. Commented by at 2012.09.21 09:31

    비밀댓글입니다

  5. Commented by Themida at 2012.09.23 16:47 신고

    이 프로그램은 더미다 버전 몇까지 효과가 있는지 알고 싶습니다.

    • Commented by jz at 2012.09.23 19:05 신고

      전 Themida 정품이 없어서 제대로 테스트는 못했구요,
      글올린 시점에서의 최신 Themida 프로텍터 자체에 테스트해보니 잘되는듯 보이더군요

    • Commented by Themida at 2012.09.24 13:27 신고

      데모 버전이시라면 풀 프로텍트는 불가능할테니 효과는 미지수네요...

    • Commented by jz at 2012.09.24 15:25 신고

      아뇨, 데모버전으로 프로텍트 한 파일을 테스트한게 아니라요

      데모버전 Themida.exe는 정품으로 프로텍트되어있습니다. 거기에 테스트한겁니다.

      다만 정품을 사서 이런저런 옵션을 줘가며 테스트해본게 아니라는 말입니다.

  6. Commented by as at 2012.10.05 16:14 신고

    좋은 툴 감사합니다. vc6으로 컴파일 시도해보니

    --------------------Configuration: healiat - Win32 Release--------------------
    Compiling...
    healiat.cpp
    Linking...
    LINK : fatal error LNK1104: cannot open file "crtmt.lib"
    Error executing link.exe.

    healiat.exe - 1 error(s), 0 warning(s)

    라고 나오는데
    무슨문제일까요?

    • Commented by jz at 2012.10.07 00:14 신고

      음 아마 제가 누가 빌드해놓은 올리디버거 디스어셈블러 라이브러리를 썼는데 거기에 링크를 해줘야하는건지...

      저도 vs6에 windows sdk 설치했는데 저는 링크 안된적이 없습니다. sdk 안깔았으면 sdk깔고 빌드해보심이... (물론 vs에 링크주소 설정해주시고..)

  7. Commented by as at 2012.10.07 19:46 신고

    crtmt.lib 이란게 windows sdk에 있다는 말씀이신지요?

    제가 과문한지 없는 걸로 알고 있고 pelles c 라는 컴파일러에서 쓰는걸로 압니다.

    뭐 좋은 툴 주시는데 따지자는 건 아니구요 궁금해서 그냥 :)

    에러 메시지와 라이브러리 옵션입니다.


    http://imageshack.us/photo/my-images/513/20121007193650.png/


    • Commented by jz at 2012.10.07 20:06 신고

      지금에야 제 노트북을 만지게 돼서 찾아봤는데 저도 없네요 ^^;

      저 라이브러리를 왜 찾는지 잘 모르겠습니다.

      일단 저는 헤더와 lib 디렉토리 1순위가 platform sdk로 되어있는데, 혹시 우선순위를 더 높게 설정하신 dx관련 라이브러리에 링크되어 있는건 아닌지 추측밖에 해볼 수가 없네요...

      dsw파일도 checkout 해서 여신거죠?

      흠... 우선순위도 sdk를 제일 위에 뒀는데 컴파일이 안된다면 저도 모르겠습니다^^;;

    • Commented by jz at 2013.02.14 11:39 신고

      에구 다른 path에 crtmt.lib가 있는걸 발견했습니다.ㅠㅠ

      제가 쓴 디스어셈블러가 링크하는거 맞는 것 같구요,

      svn에 추가했습니다.

  8. Commented by HS at 2012.12.03 12:58 신고

    캡쳐들 보고~~ 우와~!!!! 하면서 한번 받아봤습니다~~
    =_= 요런거 맹글어야지 맹글어야지 하면서 귀차니즘땜에..
    시작조차 못했는데... 대단하세요~ㅎㅎ -0-b...

  9. Commented by 짱돌 at 2013.07.29 12:54 신고

    API 리다이렉션 어떤 분이 PY 구현과 비슷하네요.
    Xref 까지 섬세하시네요. 이런거 까지 만들어야 하나 고민했는데..
    한수 배우고 갑니다.