如何在shellcode中动态加载USER32.DLL的地址?

逆向工程 视窗 外壳代码
2021-06-25 13:01:47

假设我将 shellcode 注入到 Windows GUI 应用程序中,我知道我可以:

  • 通过PEB(Process Environment Block)获取kernel32.dll基地址;
  • 查找 LoadLibrary 的地址;
  • 调用 LoadLibrary("user32.dll");
  • 最后调用GetProcAddress。

这是经典的方式,这就是我要做的,但是我想知道是否有更好/改进/更快/聪明/不同/更小或更简单的方法来做到这一点。

有任何想法吗?

1个回答

如果user32.dll已经加载到进程的地址空间中(并且我假设您说它是 Windows GUI 应用程序),您可以遍历PEB_LDR_DATA结构以找到 的基地址user32.dll