黑客如何从内存中提取shellcode

恶意程序有时会直接在内存中运行shellcode 在这篇文章中,我将向展示如何从内存中获取shellcode

shellcode在内存中的位置

1.在内存中分配shellcode的常用方法是使用VirtualAlloc来分配具有所需权限的内存。然后恶意软件使用RtlMoveMemoryshellcode写入分配的空间。然后创建一个线程将控制权传递到该位置。

shellcode在内存中的位置

如何从内存中提取shellcode

1.我们可以使用api hooks 来提取shellcode。在任何 API 调用上设置断点是很常见的。我将使用 x64dbg可以使用其他应用程序。

2.将可执行文件下载到 x64dbg。转到符号并找到VirtualAlloc。设置断点并执行直到返回。

VirtualAlloc将返回分配内存的地址。它将在rax/eax寄存器中。这是可以找到shellcode的地址。

调用CreateThread函数时设置断点。第三个参数是我们复制shellcode的内存地址。

将突出显示的值与 EAX 进行比较

按照转储中的地址。这里是shellcode的位置:

让我们将内存中的shellcode与源代码中的shellcode进行比较。前三个字节是 DA CB BB

是的,它匹配。此方法可用于将解压缩/解密的可执行文件提取到内存中。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章