A collection of anti-analysis techniques implemented in C to make reverse engineering more challenging.
IsDebuggerPresent()andCheckRemoteDebuggerPresent()- Hardware breakpoint detection (debug registers)
- Timing-based detection
- Exception-based detection
- Parent process analysis
NtQueryInformationProcesschecks- Debugger window detection
- PEB (Process Environment Block) inspection
- Opaque predicates (always-true/false conditions)
- Junk code insertion
- Overlapping instructions
- Fake conditional jumps
- Encrypted code sections
- Self-modifying code
- Return address manipulation
- Exception-based control flow
- Polymorphic code generation
- CRC32 checksum verification
- Function hash verification
- Inline integrity checks
- Memory checksum validation
- PE header verification
- Import table validation
- Timing-based integrity checks
- Continuous monitoring thread
- Stack canary implementation