模块 sdbg

require "sdbg"

公开 API

API实现说明
sdbg.versionsdbg_version返回 sdbg 反调试库版本串
sdbg.pidsdbg_pid返回当前进程 PID
sdbg.is_debuggersdbg_is_debugger检测是否有调试器附加(Windows:IsDebuggerPresent + NtQueryInformationProcess;POSIX:/proc/self/status 的 TracerPid)
sdbg.protectsdbg_protect启用反调试策略(Windows:设置 ProcessDebugFlags 禁止被调试;POSIX:忽略 SIGTRAP 断点信号)
sdbg.is_runsdbg_is_run探测单实例:sdbg.is_run([name]),若已有一个同名实例在运行则返回 true(基于互斥锁/lockfile)
sdbg.guardsdbg_guard包装函数做周期性反调试检查:sdbg.guard(fn, interval?),每次调用 fn 前检测调试器,被附加则抛错

示例

local sdbg = require "sdbg"

print(sdbg.pid())              -- 当前进程 PID
if sdbg.is_debugger() then
  print("调试器已附加!")
end
sdbg.protect()
if sdbg.is_run("myapp") then
  print("已有一个实例在运行")
  return
end
local safe_work = sdbg.guard(function(n) return n * 2 end, 1)
print(safe_work(21))            -- 42
← 返回模块索引