参考:
https://blog.csdn.net/r250414958/article/details/84104089
1. windows提供的api接口:IsDebuggerPresent()
2. 检测父进程:一般双击运行的进程的父进程都是explorer.exe,但是如果进程被调试,父进程则是调试器进程,也就是说如果父进程不是explorer.exe,就可以认为有调试器存在。
explorer.exe是Windows程序管理器或者文件资源管理器,它用于管理Windows图形壳,包括桌面和文件管理,删除该程序会导致Windows图形界面无法使用
3. SeDebugPrivilege权限判断
默认情况下进程是没有SeDebugPrivilege权限的,但是当进程通过OD或者xdbg等调试器启动时,由于调试器本身启动了SeDebugPrivilege权限,当调试进程被加载时SeDebugPrivilege也就被继承了。所以我们可以检测进程的SeDebugPrivilege权限来间接判断是否存在调试器,而对SeDebugPrivilege权限的判断可以用能否打开csrss.exe进程来判断
其他的等待添加。