PC微信hook,jmp跳转后崩溃
PC微信HOOK,思路为hook地址跳转执行自己的函数,之后再跳转回吓一条指令。我现在执行完自己函数后,跳转到下条指令。之后再执行就会跳转到报错界面。根据视频写的。百思不得其解。有做过pc微信hook的还请提供的思路或者线索。
HOOK地址如下:
procedure RECVMSG; stdcall;
var
WinAdd: Integer;
JmpAddr: DWORD;
begin
asm
mov pEax, eax
mov pEcx, ecx
mov pEdx, edx
mov pEbx, ebx
mov pEsp, esp
mov pEbp, ebp
mov pEsi, esi
mov pEdi, edi
end;
FrmRcvMsg.MemMsg.Lines.Add(FrmRcvMsg.ShowMsg(pEdi));
WinAdd :=FrmRcvMsg.GetWeChatWin;
JmpAddr :=WinAdd + PYDZ + 5;
asm
mov eax, pEax
mov ecx, pEcx
mov edx, pEdx
mov ebx, pEbx
mov esp, pEsp
mov ebp, pEbp
mov esi, pEsi
mov edi, pEdi
//retn //jmp跳转回跳失败 改为call自己的函数运行完返回
jmp JmpAddr
end;
end;
hook之后用od再调试一遍,一般就清楚哪里的问题了 感觉是你把mov那句破坏了你跳过去,没进行恢复所以ip指针失效所以奔溃,最后你写的程序只能强制跳回原来的下一个地址
不懂dp不知道你有没有还原 fanvalen 发表于 2021-1-21 01:09
感觉是你把mov那句破坏了你跳过去,没进行恢复所以ip指针失效所以奔溃,最后你写的程序只能强制跳回原来的 ...
我看其他视频他们用c写的 也是破坏没有恢复强制跳回后能行。到我这就不清楚啥问题。总是崩溃。 苏紫方璇 发表于 2021-1-20 23:45
hook之后用od再调试一遍,一般就清楚哪里的问题了
刚学的od一出错就不会看了C:\Users\zjm\Desktop\~FVKZ9G$0IGNXLE26T8Z~8A.png
C:\Users\zjm\Desktop\BL~5MLLC{DQ@26B_01Y~I(6.png
苏紫方璇 发表于 2021-1-20 23:45
hook之后用od再调试一遍,一般就清楚哪里的问题了
图片如下 跳转之前要把所用寄存器的状态保存下来,跳转回来之前要恢复之前的环境。至少在你的代码中我没看到标志位寄存器的保存与恢复。我觉的使用pushad,pushfd会更香?如果我说错了请自动忽略,有问题欢迎继续讨论 你应该是对视频没有理解吧?视频的链接发我下,我给你看看你的问题在哪里 浙大王俊凯 发表于 2021-1-21 09:44
你应该是对视频没有理解吧?视频的链接发我下,我给你看看你的问题在哪里
https://www.bilibili.com/video/BV1Sg4y1b7uc?t=3041&p=2 2b菜鸟 发表于 2021-1-21 09:25
跳转之前要把所用寄存器的状态保存下来,跳转回来之前要恢复之前的环境。至少在你的代码中我没看到标志位寄 ...
代码里mov 寄存器八个标志位了呀
页:
[1]
2