Definition
What is anti-debugging?
Anti-debugging is a protection that prevents an application from being analyzed with a debugger while it runs. A debugger lets an attacker pause execution, inspect memory, read variables, and step through logic line by line. For an attacker reverse engineering your software, it is the single most powerful tool available.
Anti-debugging removes that tool. The application continuously checks whether a debugger is attached, and when it detects one, it responds: terminating the process, corrupting the debugging session, or altering its own behavior so the observed execution is misleading.
It is a runtime, or RASP-style, protection. It does not change what your code looks like on disk. It changes what happens when someone tries to watch it execute.
