求助关于劫持补丁的疑惑
本帖最后由 朱朱你堕落了 于 2023-6-3 07:53 编辑编译一个试炼品名称为"timeGetTime.exe"的32位程序,它只能在WIN7或WIN10上运行,那我就在WIN7虚拟机里测试吧,直接放到OD里加载,查看加载模块,可以看出来,加载了C:\Windows\SysWOW64\winmm.dll
1
如果我要用AheadLib写一个winmm.dll劫持补丁,我应该使用System32下的winmm.dll来做模板,还是使用SysWOW64下的winmm.dll做模板?为什么?
https://s1.ax1x.com/2023/06/03/pCpJG1x.png
System32下的winmm.dll和SysWOW64下的winmm.dll有什么区别吗?因为我以前都是用的xp的winmm.dll做模板,就不存在System32和SysWOW64两个目录下的winmm.dll的选择问题,省事了,
结果到了win10,win7就出现两个winmm.dll了,不知道使用哪个来做模板,请说明具体原因,谢谢。
这涉及到windows 64位系统 运行32位程序的问题。你现在的问题涉及到目录重定向这一块,具体文档链接如下:
https://learn.microsoft.com/zh-cn/windows/win32/winprog64/file-system-redirector
下面回答你的问题:
1.如果我要用AheadLib写一个winmm.dll劫持补丁,我应该使用System32下的winmm.dll来做模板,还是使用SysWOW64下的winmm.dll做模板?为什么?
答:32位程序,使用SysWOW64 目录下的,64位程序,使用system32的。
2.System32下的winmm.dll和SysWOW64下的winmm.dll有什么区别吗?
答:有区别,64位系统下,system32目录下是64位的,SysWOW64目录是32位的
总之,劫持DLL必须与目标程序的架构相同,aheadlib里面有一个信息就是提示文件架构
Architecture: IMAGE_FILE_MACHINE_I386 这是32位
Architecture: IMAGE_FILE_MACHINE_AMD64 这是64位。
我是这么理解的不对的希望大佬指出
SysWOW64 中 winmm.dll 是32位 可以劫持32位程序
System32目录中winmm.dll 是64位 可以劫持64位程序
看你需要劫持的程序是32还是64吧 一般情况能劫持到并且能跑起来就行了{:301_1009:} 这个我试过 及时你用的是64位程序 劫持补丁还是system32下的winmm.dll 不知道原因 忆魂丶天雷 发表于 2023-6-3 07:53
看你需要劫持的程序是32还是64吧 一般情况能劫持到并且能跑起来就行了
当然劫持32位的EXE SysWOW64 是专门用于32位程序的。
windows 64位系统能兼容32位程序的主要原因就是在这,对于32位程序,系统会将其访问系统文件重定向导致这个专门的32位目录。具体可以百度“windows 文件重定向”,其实注册表也是有这个机制的。
回到你这个问题,如果你需要劫持的是32位程序,那就是以SysWOW64的dll为模板
沙发为正确答案 主要看程序是x86还是x64,x86就用SysWOW64下的,x64就用system32下的。 32位软件都是调用的syswow64目录下的
页:
[1]
2