[熟悉PE结构的达人帮忙]关于Import symbols
首先,我在swd3e.exe中修改
1、PE.Optional Header.Import Table Address == 0x000AD730 -->0x000AEA00
...................................Size == 0x00F0 --> 0x0104 (增加了一个IMAGE_IMPORT_DESCRIPTOR结构)
2、填充的如下:
IMAGE_IMPORT_DESCRIPTOR STRUCT
union
Characteristics dd ?
OriginalFirstThunk dd ? 0x0AEB10
ends
TimeDateStamp dd ? 0x00
ForwarderChain dd ? 0x00
Name1 dd ? 0x0AEB20
FirstThunk dd ? 0x0AEB18
IMAGE_IMPORT_DESCRIPTOR ENDS
0aeb10: 30 EB 0A 00 00 00 00 00 30 EB 0A 00 00 00 00 00
0aeb20: 53 57 44 33 45 48 6F 6F 6B 2E 64 6C 6C 00 00 00 SWD3EHook.dll
0aeb30: 01 00 4B 65 79 62 6F 61 72 64 50 72 6F 63 00 00 KeyboardProc
然后,我的SWD3EHook.dll 就会被调用
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL,"在游戏过程中,按以下键: \n\nF5: 所有角色恢复生命、灵力、体力\n\n","^_^ 提示 by iNothing",MB_ICONINFORMATION);
break;
// ....
}
return TRUE;
}
各位大虾,现在问题来了:
在9x/ME下工作正常,但在XP下说
“应用程序正常初始化(0xC0000005)失败。请单击‘确定’,终止应用程序”
Softice(for 2k的)在XP没装上,没法跟踪,请各位达人一定救我啊~~