子程序 反调试
变量名 | 类 型 | 静态 | 数组 | 备 注 |
IsDebuggerPresent | 整数型 | | |
CheckRemoteDebuggerPresent | 布尔型 | | |
NtGlobalFlag | 整数型 | | |
ParentProcessID | 整数型 | | |
如果 (调试存在 ())
信息框 ("程序正在被调试,即将退出...", 0, ""
)
延迟 (5000
)
结束程序 (0
)
如果 (远程调试存在 (0
))

信息框 ("程序正在被调试,即将退出...", 0, ""
)
延迟 (5000
)
结束程序 (0
)

如果 (父进程ID () == 1
)

信息框 ("程序正在被调试,即将退出...", 0, ""
)

延迟 (5000
)

结束程序 (0
)


如果 (Nt全局标志 () == 112
)


信息框 ("程序正在被调试,即将退出...", 0, ""
)


延迟 (5000
)


结束程序 (0
)














.结束如果


.结束如果

.结束如果
.结束如果
result =
调试器存在 ()返回 result
变量名 | 类 型 | 静态 | 数组 | 备 注 |
result | 布尔型 | | |
pid | 整数型 | | |
pid =
进程ID ()调用 (“kernel32.dll”,
“CheckRemoteDebuggerPresent”,
“i”, pid,
“p”, &result
)返回 result
变量名 | 类 型 | 静态 | 数组 | 备 注 |
parentPID | 整数型 | | |
parentPID =
父进程ID ()返回 parentPID
调用 ("ntdll.dll", "RtlGetNtGlobalFlag", "i"
)返回 flag
退出代码 (code
)延时 (milliseconds
)|
信息框 | 整数型 | |
|
message | 文本型 | | | |
style | 整数型 | | | | title | 文本型 | | | |
消息框 (message, style, title, 0
)