| 
注册时间2010-7-17
阅读权限40
最后登录1970-1-1UID69065 独步武林  
 
 TA的每日心情|  | 怒 2025-1-14 08:57
 | 
|---|
 签到天数: 1021 天 [LV.10]以坛为家III | 
 
 发表于 2017-11-24 12:31:17
|
显示全部楼层 
| 麻烦问下超版,
 <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吧。
 
 望超版解惑,谢谢。
 
 
 | 
 |