shellcode注入pdf,shellcode是如何生成的

首页 > 经验 > 作者:YD1662022-11-07 08:40:14

话虽如此,只有在现有进程中寻找执行.NET代码的情况下,情况才会如此。像上述最后一个示例所示,如果我们连接了调试器来启动一个新的.NET进程,则将看不到此远程线程的创建,因此也不会触发此检测机制。这是因为通过 DEBUG_PROCESS 的 CreateProcess 选项来创建初始调试器会话,这意味着 ntdll!NtCreateThreadEx 从不使用该调用。但是,如果稍后使用诸如 DebugBreakProcess 这样的调用,则将导致与上文所述相同的远程线程签名。

接下来,我们还必须考虑到在调试过程时,可以使用几个API来表明正在连接的活动调试器(任何编写过反分析代码的人都会知道)。例如,使用目标进程句柄中的 CheckRemoteDebuggerPresent 调用将显示调试器会话是否处于活动状态。

诸如 ProcessHacker 之类的工具还可以通过突出显示进程来表明调试器会话的存在:

shellcode注入pdf,shellcode是如何生成的(13)

当然,只有在调试器会话处于活动状态时才适用。因此,如果代码已执行且调试器会话已停止,则情况将不再如此。

一些有用的参考

https://googleprojectzero.blogspot.com/2019/04/windows-exploitation-tricks-abusing.html http://index-of.es/Windows/dbgk-1.pdf https://mattwarren.org/2016/08/08/GC-Pauses-and-Safe-Points/ https://github.com/Samsung/netcoredbg

作者:XPN

原文地址:https://blog.xpnsec.com/debugging-into-net

上一页1234末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.