吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1869|回复: 12
收起左侧

[求助] PC微信hook,jmp跳转后崩溃

[复制链接]
Bachelor硕 发表于 2021-1-20 23:27
PC微信HOOK,思路为  hook地址  跳转执行自己的函数,之后再跳转回吓一条指令。
我现在执行完自己函数后,跳转到下条指令。之后再执行就会跳转到报错界面。根据视频写的。百思不得其解。有做过pc微信hook的还请提供的思路或者线索。
HOOK地址如下:

HOOK地址

HOOK地址

[Delphi] 纯文本查看 复制代码
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;

image.png

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2021-1-20 23:45
hook之后用od再调试一遍,一般就清楚哪里的问题了
fanvalen 发表于 2021-1-21 01:09
感觉是你把mov那句破坏了你跳过去,没进行恢复所以ip指针失效所以奔溃,最后你写的程序只能强制跳回原来的下一个地址
不懂dp不知道你有没有还原
 楼主| Bachelor硕 发表于 2021-1-21 08:21
fanvalen 发表于 2021-1-21 01:09
感觉是你把mov那句破坏了你跳过去,没进行恢复所以ip指针失效所以奔溃,最后你写的程序只能强制跳回原来的 ...

我看其他视频  他们用c写的   也是破坏没有恢复  强制跳回后能行。到我这就不清楚啥问题。总是崩溃。
 楼主| Bachelor硕 发表于 2021-1-21 08:36
苏紫方璇 发表于 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
 楼主| Bachelor硕 发表于 2021-1-21 08:37
苏紫方璇 发表于 2021-1-20 23:45
hook之后用od再调试一遍,一般就清楚哪里的问题了

图片如下
BL~5MLLC{DQ@26B_01Y~I(6.png
~FVKZ9G$0IGNXLE26T8Z~8A.png

点评

我感觉还是寄存器恢复的问题,你截一个跳转之后的图看看  详情 回复 发表于 2021-1-21 12:21
2b菜鸟 发表于 2021-1-21 09:25
跳转之前要把所用寄存器的状态保存下来,跳转回来之前要恢复之前的环境。至少在你的代码中我没看到标志位寄存器的保存与恢复。我觉的使用pushad,pushfd会更香?如果我说错了请自动忽略,有问题欢迎继续讨论
浙大王俊凯 发表于 2021-1-21 09:44
你应该是对视频没有理解吧?视频的链接发我下,我给你看看你的问题在哪里
 楼主| Bachelor硕 发表于 2021-1-21 11:07
浙大王俊凯 发表于 2021-1-21 09:44
你应该是对视频没有理解吧?视频的链接发我下,我给你看看你的问题在哪里

https://www.bilibili.com/video/BV1Sg4y1b7uc?t=3041&p=2
 楼主| Bachelor硕 发表于 2021-1-21 11:08
2b菜鸟 发表于 2021-1-21 09:25
跳转之前要把所用寄存器的状态保存下来,跳转回来之前要恢复之前的环境。至少在你的代码中我没看到标志位寄 ...

代码里mov 寄存器八个标志位了呀
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表