System/Reversing

[x64dbg] Themida Debugger 탐지 우회#2

pyozzi 2019. 7. 11. 13:13


이번에는 x64dbg에서 Themida Debugger탐지를 우회하는 방법을 정리해보겠다.

우선 x64dbg는 이전 Ollydbg의 확장버전 개념의 디버거이고, 한글지원과 다양한 플러그인들을 사용할 수 있다.


x64dbg_OfficialSite: https://x64dbg.com

x64dbg_Blog: https://x64dbg.com/blog/

x64dbg_Github: https://github.com/x64dbg/x64dbg/wiki


[ Themida Detect ]

우선 Themida로 패킹되어 있는 .exe파일을 디버거로 로드하여 실행하면

위와 같은 Themida경고창이 뜨면서 프로세스가 종료되는 것을 확인할 수 있다.


이전 글에서도 언급했듯이, 디버거를 Kernel영역에 로드하는 방법도 있겠지만

이번에 소개할 방법은 패커가 Debugger를 탐지하는 Symbol을 숨기는 방식으로 탐지를 우회한다.


플러그인 이름은 Scylla Hide이며, 아래 링크에서 다운받아서 x64dbg에 로드하여 사용하면 된다.

https://github.com/x64dbg/ScyllaHide/releases


[ Scylla Hide#1 ]

가장 최신버전의 압축파일을 받아서 압축을 풀어주면 된다.


[ Scylla Hide#2 ]

적용방법은 각 Bit에 맞는 파일들을 x64dbg의 플러그인 폴더에 넣어주면 된다.

x64같은 경우는 scylla_hide.ini / HookLibraryx64.dll / ScyllaHideX64DBGPlugin.dp64

위 3개 파일을 복사해서 넣어주면 된다.


[ Scylla Hide#3 ]

이렇게 필요한 파일들을 옮겨주면 플러그인 셋팅은 끝이다.


[ Scylla Hide 적용 ]

디버거를 실행해서 [플러그인]탭을 보면 ScyllaHide가 추가된 것을 확인할 수 있고,

ScyllaHide - Options을 들어가서 기능들을 설정할 수 있다.


[ Scylla Hide Options ]

우리가 따로 기능을 건드려줄 건 없고, 각 패커마다 기본적으로 옵션이 설정된다.

우리는 Themida를 우회할 것이니 Target Process를 로드하고 Themida x86을 선택한 뒤, [OK]를 눌러주면 된다.


[ Themida Bypass ]

다시 디버거에 Target 프로그램을 로드하고 실행해보면

아까랑 달리 경고창 없이 정상적으로 실행되는 것을 확인할 수 있다.