일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dotPeek
- 분석 보고서
- IL코드
- x32dbg
- DebugBlocker
- CP949
- 안티디버깅
- JIT
- Static안티디버깅
- UTF-16
- Python
- Visual Studio
- Dynamic안티디버깅
- Self-Creation
- PEImageSwitching
- ImageSwitching
- .net
- 리버싱핵심원리
- Exe2Aut
- PEImage
- CodeEngn
- RedLine Stealer
- UTF-32
- 리버싱
- 서비스디버깅
- 서비스프로세스
- 디버깅
- Advanced안티디버깅
- hxd
- OllyDbg
- Today
- Total
목록안티디버깅 (3)
-榮-
1. 가비지 코드 의미 없는 코드를 대량으로 추가시켜 디버깅을 힘들게 만드는 기법 중간 중간에 진짜 의미 있는 고드를 섞어 버리거나 다른 안티 디버깅 기법을 혼합해서 사용하면 디버깅이 매우 힘들다. 정교하고 복잡한 형태의 가비지 코드는 수많은 조건 분기와 끝없이 이어지는 함수 호출로 인하여 건너뛰기도 쉽지 않다. 2. Breaking Code Alignment IA32-Instruction을 잘 이해한 상태에서 정교하게 어셈블리 프로그래밍을 하면, 디버거의 디스어셈블 과정에 혼란을 줄 수 있다. 즉, 디스어셈블리 코드가 깨진 것처럼 보인다. 코드 사이에 (정교하게 계산된) 불필요한 코드를 삽입시켜 디스어셈블리 코드의 가독성을 떨어뜨리는 것이 ‘Breaking Code Alignment’ 기법 사람이 파악..
내부 코드와 데이터를 리버싱으로부터 감추고 보호하는 것이 목적으로, PE 프로텍터들에서 많이 사용된다. 원본 프로그램의 핵심 알고리즘을 보호하기 위해 사용 디버거로 프로그램을 실행할 수 있을지언정 원본 프로그램의 핵심 코드(OEP)를 트레이싱으로 찾지 못하도록 방해 1. 예외(Exception) 안티 디버깅의 단골 메뉴 예외가 발생하면 일반 실행은 SEH(Structured Exception Handling) 메커니즘에 의해 처리되고, 디버깅 중이면 디버거가 예외 처리를 담당한다. 이 특징을 이용해서 정상 실행 경우와 디버깅당하는 경우를 판별해서 서로 다른 동작을 수행할 수 있는 안티 디버깅 기법. -1. SEH(Structured Exception Handling) SEH의 대표적인 예외 EXCEPTI..
디버거 탐지, 디버깅 환경 탐지, 디버거 강제 분리 많은 static 안티 디버깅은 OS 의존성을 가지고 있다. 1. PEB 현재 프로세스의 디버깅 여부 판단에 사용. PEB 구조체 정보 이용 +0x002 BeingDebugged +0x00C Ldr +0x018 ProcessHeap +0x068 NtGlobalFlag BeingDebugged - 디버깅 여부를 표시하는 Flag Ldr, ProcessHeap, NtGlobalFlag - 디버깅 프로세스의 독특한 힙(Heap) 메모리 특성과 관련 TEB.ProsessEnvironmentBlock (+ 0x30) == PEB PEB 구조체구하는법 바로 PEB 구하기 MOV EAX, DWORD PTR FS:[0x30]; FS:[0x30]=address of P..