AntiCrack DotNet is a sophisticated .NET project designed to safeguard software by implementing advanced anti-debugging, anti-virtualization, anti-injection, and anti-hooking techniques.
These methods aim to detect and prevent malicious actions such as debugging, reverse engineering, and unauthorized code modifications. Below is an overview of its key functionalities:
Key Features
Hooks Prevention
- Protects .NET function pointers to prevent runtime memory modifications.
- Detects unauthorized attempts to hook critical functions.
Anti-Debugging Techniques
AntiCrack DotNet employs multiple methods to detect debuggers:
- API-based Detection: Uses functions like
IsDebuggerPresent
,Debugger.IsAttached
, andNtQueryInformationProcess
to identify debugging attempts. - Behavioral Checks: Monitors active windows for known debugger names and detects hardware breakpoints.
- System Manipulation Detection: Identifies tampering with process flags (e.g.,
PEB.BeingDebugged
andPEB.NtGlobalFlag
) and invalid handle operations. - Advanced Tactics: Includes techniques like crashing non-managed debuggers, exploiting OllyDbg format strings, and patching debugger-related functions.
Anti-Virtualization Measures
These techniques detect virtualized environments or sandboxes:
- Identifies common virtualization platforms like VirtualBox, VMware, Hyper-V, QEMU, and KVM.
- Checks for sandbox-specific artifacts such as blacklisted usernames, suspicious file locations, and VM-created devices.
- Validates proper implementation of processor instructions (e.g., AVX and RDRAND) to expose emulators.
Anti-Injection Mechanisms
To prevent DLL injection and process manipulation:
- Enforces binary image signature policies to block non-Microsoft binaries.
- Detects injected libraries through path whitelisting.
- Alters CLR module information in memory to obscure assembly details from external tools.
Other Protections
- Detects system configurations that may indicate vulnerabilities (e.g., unsigned driver loading or kernel debugging).
- Identifies hooks on anti-debugging functions and CLR methods to counteract anti-hooking mechanisms.
Despite being easily decompiled, C# was chosen due to its evolving Ahead-of-Time (AOT) compilation capabilities. This makes it increasingly suitable for software protection tools like AntiCrack DotNet.
The project is open-source under the MIT License and intended for responsible use, such as developing anti-cheat systems or enhancing software security. It is not meant for malicious purposes.
AntiCrack DotNet offers a robust toolkit for developers seeking to protect their .NET applications against reverse engineering and unauthorized tampering.