반응형

URL : http://www.codeproject.com/KB/cpp/reversedisasm.aspx

C/C++ 로 컴파일 된 실행파일의 디스어셈블에 대한 내용입니다.

디버거/디스어셈블러 등으로 실행파일 바이너리 분석을 하려는 분들이~

읽어보면 도움이 될만한 자료입니다.


출처 : 코드프로젝트
반응형
AND

반응형

안티-리버싱 기법에 대해 관심이 많으신 분들은~~ 다들 알만한 내용입니다만...

-0- 스스로 정리하는 차원에서;; 살포시 포스팅 해봅니다..

PEB 에서 ImageBase 값 및 LDR_DATA 의 첫번째 모듈(보통은 메인 프로세스죠;;)의

이미지베이스, 엔트리포인트, 이미지크기 등을 조작해서 해당 정보를 읽지 못하게 하면 되는데요~

코드는 대략 아래와 같습니다.

__asm {
    // 프로세스의 이미지 베이스 제거 
    MOV     EAX, DWORD PTR FS:[0x30]
    MOV     DWORD PTR [EAX + 0x08], 0

    // LDR_DATA 의 첫번째 모듈 정보 조작
    MOV     EAX, DWORD PTR FS:[0x30]
    MOV     EAX, DWORD PTR [EAX + 0x0C]
    MOV     EAX, DWORD PTR [EAX + 0x0C]

    // 모듈의 베이스 주소
    MOV     DWORD PTR [EAX + 0x18], 0
    // 모듈의 엔트리 포인트
    MOV     DWORD PTR [EAX + 0x1C], 0
    // 모듈의 사이즈
    ADD     DWORD PTR [EAX + 0x20], 0x1000
}
 
LordPE 에는 'correct ImageSize' 라고 이미지 사이즈가 조작된 경우 이를 어느 정도 바로잡아 주는 기능이 있는데..

위와 같이 이미지 베이스 등~ 정보를 다 조작해버리면 그 기능도 사용할 수 없습니다~ :)

( 직접 분석해보면서 부분 덤프를 해야하겠죠;;... )


보통은 위와 같은 구현으로 잘 돌아갑니다만...

테스트를 해보니 문제가 발생하는 경우가 있었습니다..

실행파일이 "Delay Import" 를 가지는 경우인데요~

정확한 이유는~~ =0= 다음에 좀 더 살펴보고 이어서 포스팅을 할까 합니다..
( 사실 =0= 아직 이유를 모르거든요;;;.. )

암튼.. 위와 같은 방식을 단일 실행파일에 적용하는 것은 괜찮겠지만...

패커나 프로텍터 등~ 다양한 파일을 지원하는 프로젝트에 적용하는 것은~

고려를 해봐야될 듯 합니다.. ^^:
반응형
AND

반응형


Anti-Unpacker Tricks

by Peter Ferrie, Senior Anti-Virus Researcher, Microsoft Corporation


1. Anti-Dumping
   - SizeOfImage
   - Erasing the header
   - Nanomites
   - Stolen Bytes
   - Guard Pages
   - Imports
   - Virtual machines

2. Anti-Debugging
   - PEB fields
   - Heap flags
   - The Heap
   - Special APIs
   - Hardware tricks
   - Process tricks
   - SoftICE-specific
   - OllyDbg-specific
   - HideDebugger-specific
   - ImmunityDebugger-specific
   - WinDbg-specific
   - Miscellaneous tools

3. Anti-Emulating
   - Software Interrupts
   - Time-locks
   - Invalid API parameters
   - GetProcAddress
   - GetProcAddress(internal)
   - "Modern" CPU instructions
   - Undocumented instructions
   - Selector verification
   - Memory layout
   - File-format tricks

4. Anti-Intercepting
   - Write -> Exec
   - Write ^ Exec

5. Miscellaneous
   - Fake signatures

[ 출처 : http://pferrie.tripod.com/papers/unpackers.pdf ]
반응형
AND