能力值:
(RANK:1010 )
|
-
-
2 楼
最初由 drwch 发布 挂钩后确实有调用FlushInstructionCache的,而且错误发生在WideCharToMultiByte快要返回的时候,相信与cache关系不大。在错误发生时,kenrel32的SEH直接关闭了这个线程
能不能确定这是个什么类型的异常
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
就是无效内存访问啊
在WINXP SP2里面,地址是7C80A292,CMP WORD PTR[EAX+2],1
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
顺便贴上挂钩函数,很简单的构造
HookDllFunc FRAME lpstrFuncName, lpHookAddress, hDLL
mov ecx,[hDLL]
mov eax,[lpstrFuncName]
test ecx,ecx
jz >L003
push eax
push ecx
call [kernel32:GetProcAddress]
L003:
mov esi,eax
push ecx
push esp
push PAGE_EXECUTE_READWRITE
push edi
push eax
call [kernel32:VirtualProtect]
mov eax,[lpHookAddress]
mov B[esi],0xE9
sub eax,esi
pop ecx
sub eax,edi
mov [esi + 1],eax
push edi
push esi
push -1
call [kernel32:FlushInstructionCache]
add esi,edi
ret
ENDF
其中edi是一个常量5,esi是这个函数的返回值
如果传入的hDLL参数为空,则lpstrFuncName不是被挂勾函数的名字,而是它的地址
|
|
|