더미다 란? ( themida ) - Protection Options

2020. 1. 21. 23:33IT-분석/보안

반응형

themida

 

이번 글에서는 기능 설명이 길어서 스압이 있을 수 있습니다.~ 감안하며 읽어주세요.^^

 

주로 번역(80%) & 직접사용(20%) 을 기준으로 작성한 글입니다.

 

option 설정에 따라 themida packing된 파일이 실행되는 속도와 파일크기가 변한다. 

 

때문에 필요없는 보안 option은 제거하면 된다.

 

Anti-Debugger Detection : 

 

debuger로 이 파일을 debuging하려고 하면 이를 감지한다. "Ultra"설정은 바이러스 감염이나 Rootkit이

 

설치된 시스템에서 실행되지 않을 수 있으며, 비 Windows 플랫폼 (예 : Wine, ReactOS)과 호환되지 않을

 

수도 있습니다.


※ Wine : Linux OS에서 윈도우용 Win32 Lib / exe 를 실행시켜주는 application, 또다른 에뮬레이터를

 

             필요하지 않음

 


ReactOS : 마이크로소프트 윈도우 운영체제를 오픈소스로 구현중인 React OS(https://www.reactos.org/,  

 

https://www.reactos.org/download)  


 rootkit : 자신을 숨기는 SW, 악성SW로 주로 분류됨

 

Anti Dumpers : 

 

해당 파일이 메모리에서 암호화되지 않은 data와 code로 동작할때, 이 메모리의 내용을 파일로 저장해 

 

원본 image를 그대로 재구성하는 많은 Tool들을 피할 수 있도록 해준다. 

 

메모리 조작이 일어날때, 감지할 수 있는 기능

 

EntryPoint Obfuscation : 

 

응용 프로그램 시작 지점을 혼합합니다. 공격자가 프로그램의 시작지점을 얻을 수 없도록 해서 공격하기 

 

어렵게 합니다. 프로그램의 시작지점에 쓰레기 코드를 넣고 원래 시작지점에 있는 코드 내용을 

 

SecureEngine® 에 통합합니다.

 

Resources Encryption : 

 

해당 파일의 리소스 부분을 암호화함. 응용 프로그램에서 사용하는 중요한 구조를 모니터하거나 

 

변경할 수 없도록합니다.

 

VMWare / Virtual PC : 

 

Vmware, Virtual PC 같은 가상PC에서도 실행될수 있도록 합니다.

 

Advance API-Wrapping : 

 

해당 프로그램이 사용하는 Api들을 확인할 수 없도록 합니다. 난독화레벨을 지정할 수 있으며, 

 

레벨이 높을 수록 프로그램에서 사용하는 Api들을 난독화하기 위한 cpu 처리시간이 늘어납니다. 

 

프로그램이 실행되는 시간이 오래걸릴수 있습니다. 프로그램이 빨리 실행되기를 원한다면,

 

api level을 낮추자!

 

Anti-Patching : 

 

 none : 더미다를 적용한 파일이 변경되어도 신경안씀


 File Patch : themida 가 적용된 파일이 변경되면, 해당 파일 실행되지 못하도록 막는다.


 File Patch(sign support) : 파일에 인증서 Sign 적용하는 것만 허용되고, 나머지는 File Patch와

 

   동일하게 동작


***. 사용중인 themida에서는 어떤 설정을 하든 인증서 적용 가능. 파일변경해도 실행가능하고... 

 

      themida Bug인가?

 

Taggant Information : 

 

바이러스 백신 오 탐지에 맞서기 위해 소프트웨어에 추가 된 암호화 서명입니다. Taggant 정보에는 

 

e-mail과 보호된 바이너리 정보가 포함됩니다. 파일이 신뢰할 수 있는 고객에 의해 보호되고 있음을 

 

나타냅니다. 백신들에게  이 packing이 themida에 의해서 된것이 확실하니 오탐하지 말라는 

 

정보입니다. 하지만, 이 라이선스 정보가 누출되어 바이러스를 보호하는데 사용되면, 백신 회사가 

 

Taggant 서명을 블랙리스트에 올리며 해당 라이센스로 보호 된 모든 항목은 

 

바이러스 / 악성 프로그램으로 표시됩니다.

 

memoryguard : 

 

해커가 해당파일의 메모리를 변경할 수 없도록하는 기능입니다.

 

Compression : 

 

themida를 적용하게 되면 프로그램 파일의 크기가 일반적으로 증가하게 됩니다. 압축을 함으로써 파일크기 

 

증가를 일부 줄일 수 있습니다. Application / Resource / SecureEngine 은 압축을 할 영역을

 


나타냅니다. 빠르게 압축을 해제할 수 있는 알고리즘을 사용하므로 메모리에 올려지는 속도에는 

 

영향을 거의 주지 않습니다.

 

Application : themida를 적용할 해당 파일의 코드영역


Resource : themida를 적용할 해당 파일의 리소스영역


SecureEngine : themida 기능 관련 영역

 

Monitor Blockers : 

 

프로그램이 접근하는 파일, 레지스트리키 정보를 해커가 알수 없도록 숨깁니다. 공격자가 

 

어떤 Tool을 사용하든 상관없이 당신이 만든 프로그램이 접근하는 파일, 레지스트리 를 

 

찾아내지 못할 겁니다.

 

Process monitor를 실행시켜보니 다음과 같은 메시지와 함께 종료가 됩니다. 해당 기능을 체크하지

 

않으면 우리프로그램이 접근하는 파일, 레지스트리 관련 정보를 processmonitor를 통해서 확인이 가능합니다.

 

응용프로그램의 무료사용기간 정보를 파일, 레지스트리에 기록한 것을 찾아내는데 사용될 수 있습니다. 

 

이런, 모니터링 Tool을 찾아내는 기술은 전에 없던 매우 강력한 기능입니다.

 

대부분의 현재 protector 들은 시스템에 등록된 window class 이름을 찾거나 메모리상에 실행중인 것으로

 

파악하는 방식인데 이런 방식은 공격자들이 쉽게 우회할 수 있는 방식입니다.

 

 

Delphi/BCB form protection : 

 

델파이나 볼렌드 C++로 제작된 프로그램이라면, 이 옵션을 통해서 FORM을 보호할 수 있습니다.

 

프로그램이 실행될 때, Delphi/BCB FORM 들을 추출하지 못하도록 막아줍니다.

 

When Debugger Found :

 

themida 가 적용된 프로그램이 실행중일때, 메모리상에 debugger 나 크랙킹 tool들이 발견되면,

 

어떻게 처리할지를 설정한다. 

 

Display Message, Exit Silently, Crash Application 중에 선택할 수 있다. 

 

Display Message를 선택할시 Customized Dialogs 에서 메시지를 수정할 수 있다.