본문 바로가기

Themida 가 사용하는 API Redirect Code 를 잔혹하게 난독화하는 것으로 유명한 Themida 라는 Protector 에서 주로 사용하는 기법은 Virtualization , API Redirect, 그리고 기타 Code Obfuscation 기법이 있겠다. 그 중에서 API Redirect 기법에 대해서 적어보겠다. 사실 API Redirect 기법은 오래 전부터 사용한 기법이다. 예를 들어 CreateFile 함수를 호출하는 프로그램을 Protect 로 Packing 했다고 하자. PeSpin 경우에는 Call CreateFile 대신에 Call 2021453 와 같이 괴상한 주소로 Call 로 바꾼다. 그리고 2021453 으로 점프하면 mov edi,edi push ebp mov ebp,esp 명령이 있고 또 다시 JMP 문이 있.. 더보기
OEP 를 찾는 몇 가지 편법 Unpacking 작업에서 가장 중요하고 첫 번째로 진행하는 과정은 OEP 를 찾는 과정이다. 요즘 Packer/Protector 들의 보호기법이 악랄해지고, 각종 Trap 들을 많이 설치해서 OEP 찾는 과정도 순탄치가 않다. 기본적인 원리를 무시한 상태로 편법만을 쓰는 것을 선호하지 않지만, 구버전의 Packer/Protector 로 Packing 된 바이너리의 OEP 를 빠르게 찾는 방법을 지금까지 공부한 내용만큼 정리해본다. 1.일반적으로 Decode 루틴 진입 전에 PUSHAD 를 해서 기존의 레지스터들을 백업한다. 그 다음은 POPAD 를 이용해서 레지스터들을 복구한다. Hardware Breakpoint 를 이용해서 해당 Stack 에 접근 시도하는 부분을 찾은 다음에 근처에 JMP 명령, .. 더보기
계획 현재까지 UnpackMe 샘플로 올라온 모든 Packer 들을 Unpack 하는 것을 목표로 진행한다.UnpackMe Sample 링크https://tuts4you.com/download.php?list.52 원칙은 하루에 한 종류의 Packer 들을 분석하는 것이지만 The**da 라던지 V*Pro**ct 와 같은 분석작업이 잔인한 Packer 들은 몇 년이 걸릴지도 모른다. 알파벳 순서로 기재되지는 않는다. 어쨋든 오늘부터 시작이다. 더보기