我发现自己最近在陌生的领域玩耍,在我的舒适区之外冒险去测试一些理论。目前我想在True
每次特定程序调用时返回IsDebuggerPresent
,而不实际调试程序。
由于我不是软件开发人员,我真的宁愿避免编写代码来进行 API 挂钩。我的下一个想法是kernel32.dll
在与程序相同的目录中使用修改过的,指望“DLL 加载顺序劫持”。所以...我修改了 dll 的副本,基本上IsDebuggerPresent
用mov eax, 1
如果我在 IDA 中打开 DLL 并检查导出,它会准确显示我修补的代码,但是如果我运行可执行文件,当它调用IsDebuggerPresent
我修改的相同地址时,会显示正确IsDebuggerPresent
指令的 JMP 。
我正在尝试做的甚至是可行的,还是必须进行 API 挂钩才能使其工作?我真的在寻找一个简单的 POC,所以再说一次,我宁愿不必为了测试理论而找出 C++ 的度量标准。