登录/注册后可看大图
Figure 11 Execution flow of a Procedure EDR Hooked_1.png (189.71 KB, 下载次数: 0)
下载附件
2021-8-20 11:18 上传
我们仍需要确保将字节数据写入进程内存中的正确位置,受地址空间布局随机化 (ASLR) 影响,地址空间布局随机化能够确保堆栈上的库位置在内存中随机定位。由于进程已在内存中建立,这可能会导致问题出现,因为如果我们没有将正确的字节数据应用到正确的内存地址当中,当应用程序尝试执行代码时,就会发生崩溃。我们需要 .text 区段中每个函数的偏移量,而不是尝试重新映射或进一步修改流程。每个函数都有一个偏移量,表示从所在的基地址开始的确切字节数,提供函数在堆栈中的位置。
登录/注册后可看大图
Figure 12 Execution flow of a Procedure EDR Hooked_0.png (219.36 KB, 下载次数: 0)
下载附件
2021-8-20 11:20 上传
使用 VirtualProtect,我们可以将 ntdll.dll 的 .text 区域更改为可写,虽然这是一个系统 Dll,但由于它已加载到进程中,可以更改内存权限而无需提升权限。同样要注意,我们只是更改了 Dll 的一部分以避免检测。一旦完成,就可以根据正确的偏移量写入字节数据,并将正确的、未 hook 的字节数据恢复到正确的内存地址。
登录/注册后可看大图
SourceZero_Red-Evolution-of-Detection-and-Response_Blog-Pt-1_Figure13_800x500-100_0.jpg (24.89 KB, 下载次数: 0)
下载附件