关于64位系统劫持syswow64中的dll
环境是win10 64位,我在注入TX某游戏登陆程序的时候被TP加载的CreateProcess和CreateThread回调拦截了,所以考虑dll劫持注入。拿PCHUNTER看了下登录器是32位的,加载的dll都是SysWOW64的。然后我拿win10的SysWOW64/rasadhlp.dll用aheadlib生成了一波劫持代码,放到登录器所在目录下没反应(win10),换成xp、win7 32位都劫持成功了。
拿PCH看了一下模块列表发现没有加载我的rasadhlp.dll,而是只加载了SysWOW64/下的rasadhlp.dll
请问这是因为aheadlib生成的代码不兹茨WOW64的缘故吗?讲道理都是32位的dll应该没问题才对。或者说是因为win10的安全策略导致不加载未签名/非系统目录下的dll?
系统有一个DLL默认加载列表,各系统不同。
各系统同模块的导出表可能不同,需要分区去编译生成。 PYG官方论坛 发表于 2016-1-28 22:28
系统有一个DLL默认加载列表,各系统不同。
各系统同模块的导出表可能不同,需要分区去编译生成。
麻烦问下超版,
<1>
系统有一个DLL默认加载列表,各系统不同。
虽然各系统不同,但是加载的顺序第一个就是当前目录下的DLL吧。
<2>
各系统同模块的导出表可能不同,需要分区去编译生成。
WIN7 64位下sysWOW64文件夹下的32位的LPK
#pragma comment(linker, "/EXPORT:LpkTabbedTextOut=_AheadLib_LpkTabbedTextOut,@1")
#pragma comment(linker, "/EXPORT:LpkDllInitialize=_AheadLib_LpkDllInitialize,@2")
#pragma comment(linker, "/EXPORT:LpkDrawTextEx=_AheadLib_LpkDrawTextEx,@3")
#pragma comment(linker, "/EXPORT:LpkEditControl=_AheadLib_LpkEditControl,@4")
#pragma comment(linker, "/EXPORT:LpkExtTextOut=_AheadLib_LpkExtTextOut,@5")
#pragma comment(linker, "/EXPORT:LpkGetCharacterPlacement=_AheadLib_LpkGetCharacterPlacement,@6")
#pragma comment(linker, "/EXPORT:LpkGetTextExtentExPoint=_AheadLib_LpkGetTextExtentExPoint,@7")
#pragma comment(linker, "/EXPORT:LpkInitialize=_AheadLib_LpkInitialize,@8")
#pragma comment(linker, "/EXPORT:LpkPSMTextOut=_AheadLib_LpkPSMTextOut,@9")
#pragma comment(linker, "/EXPORT:LpkUseGDIWidthCache=_AheadLib_LpkUseGDIWidthCache,@10")
#pragma comment(linker, "/EXPORT:ftsWordBreak=_AheadLib_ftsWordBreak,@11")
xp下system32下的32位LPK
#pragma comment(linker, "/EXPORT:LpkInitialize=_AheadLib_LpkInitialize,@1")
#pragma comment(linker, "/EXPORT:LpkTabbedTextOut=_AheadLib_LpkTabbedTextOut,@2")
#pragma comment(linker, "/EXPORT:LpkDllInitialize=_AheadLib_LpkDllInitialize,@3")
#pragma comment(linker, "/EXPORT:LpkDrawTextEx=_AheadLib_LpkDrawTextEx,@4")
#pragma comment(linker, "/EXPORT:LpkEditControl=_AheadLib_LpkEditControl,@5")
#pragma comment(linker, "/EXPORT:LpkExtTextOut=_AheadLib_LpkExtTextOut,@6")
#pragma comment(linker, "/EXPORT:LpkGetCharacterPlacement=_AheadLib_LpkGetCharacterPlacement,@7")
#pragma comment(linker, "/EXPORT:LpkGetTextExtentExPoint=_AheadLib_LpkGetTextExtentExPoint,@8")
#pragma comment(linker, "/EXPORT:LpkPSMTextOut=_AheadLib_LpkPSMTextOut,@9")
#pragma comment(linker, "/EXPORT:LpkUseGDIWidthCache=_AheadLib_LpkUseGDIWidthCache,@10")
#pragma comment(linker, "/EXPORT:ftsWordBreak=_AheadLib_ftsWordBreak,@11")
@1,@8序号导出的函数就不一样,
估计WIN7 64上,sysWOW64文件夹下的msimg32.dll和XP上的msimg32.dll,导出函数也不一样,
如果对一个32位的程序做补丁劫持,而这个msimg32.dll要在WIN7 64和XP上都能劫持,,
按您所说,需要生成两份劫持补丁吗?论坛飘老大的劫持补丁神器,在生成msimg32劫持的时候,
就生成了一份msimg32.dll,这个就能在XP下和WIN7上都能劫持成功,它不可能智能判断是
WIN7还是XP吧。
望超版解惑,谢谢。
页:
[1]