我们可以对 kernel32.dll 进行变基吗?这样两个进程的加载地址是不同的
具体来说,我想知道同一会话中的两个进程的 kernel32.dll 加载地址是否可以不同? 我想使用 createremote 线程,所以只想知道远程进程中的 kernel32 加载地址是否可以与任何情况下的注入进程不同?
specifically i want to know if kernel32.dll load address can be different for two processes within the same session ?
I want to use createremote thread so just wanted to know if kernel32 load address in remote process can be different from the injecting process in any scenario ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
出于安全原因,系统 DLL 在随机地址 (ASLRed) 加载,以便远程攻击者无法猜测系统上的代码位位于内存中(即远程攻击者无法猜测计算机上的指针)。
每次启动时都会发生一次,因此 kernel32 将在系统中的所有进程中加载到相同的地址。
System DLLs are loaded at random addresses (ASLRed) for security reasons so that a remote attacker can't guess where bits of code on your system are living in memory (i.e. remote attackers can't guess pointers on your computer).
This happens once per boot, and hence kernel32 will be loaded at the same address in all processes across your system.
Kernel32.dll 在所有进程上都具有相同的基地址,以准确执行您想要执行的操作。阅读:为什么某些 DLL 需要在系统范围内位于相同的基地址?
Kernel32.dll has the same base address on all processes to allow exactly what you'd like to do. Read: Why are certain DLLs required to be at the same base address system-wide?