System/Reversing

[CheatEngine] Themida Debugger 탐지 우회#1

pyozzi 2019. 7. 10. 13:15

Windows환경에서 Themida로 패킹되어 있는 프로그램을 CheatEngine으로 분석할 때 우회 팁이다.


우선 탐지하는 수준이 엄격하냐, 느슨하냐 차이가 있겠지만

나같은 경우는 CheatEngine이 실행되어 Target Process에 Attach하는 것까지는 탐지하지 않고 있었다.


[ CheatEngine Error ]

Attach이후에 BreakPoint를 설정하거나, Memory를 조작하는 순간 

위와 같은 에러창이 뜨면서 Target Process가 종료되는 상황이였다.


[ Themida Packing ]

Target Process를 ExeInfo로 확인해보니 Themida로 패킹된 것을 확인할 수 있었다.


보통 이런 Anti-Debugging을 우회하는 방법 중 하나가 User영역에서 메모리를 건드는게 아니라

Target Process가 탐지하지 못하는 Kernel영역으로 넘어가서 우회하는 방법이 있다.

갓-갓 툴인 CheatEngine에도 그러한 기능이 있어서 소개하려고 한다.


[ Debugger Options ]

CheatEngine에서 Settings에 들어가보면 왼쪽에 여러탭들이 있다.

그 중 'Debugger Options'을 보면 빨간박스의 옵션이 Debugger를 어디서 실행할 건지 선택할 수 있다.


기본적으로는 'Use windows debugger'로 선택되어 있을텐데

우리는 Anti-debugging의 탐지를 우회할거니까 'Use kernelmode debugger'를 선택하고 [OK]를 누르면 된다.

수정한 옵션은 별도의 동작없이 바로 적용된다.


[ Anti-Debugging Bypass ]

다시 Target Process에 Attach하고 BreakPoint를 설정하면

아까랑 다르게 왼쪽 상단에 'DBK64 LOADED'라는 문구가 뜨면서 

정상적으로 BreakPoint가 설정되는 것을 볼 수 있다.