站群首页 | 邪恶海盗的博客 | 电商渠道-京东代购(折扣) | 医疗物资外贸-临时站 | 新悦德式定制随州店

Ollydbg(OD)汇编初探--QQ防撤回破解(QQ轻聊版7.7L 14298测试成功)

这里用的是52PJ汉化版的Ollydbg,下载解压运行主程序即可.

先来张测试成功的图,然后再进行破解操作
替换原有im.dll,测试QQ防撤回

根据前人的经验,QQ撤回功能是由".Bin\im.dll"里的函数来控制的,这里我们只需要修改im.dll就能达到防撤回的目的了,下面我们来开始:

打开Ollydbg,加载im.dll
加载im.dll

加载完成后,在"C LCG -主线程"窗口中单击右键打开菜单选择"查找>所有参考文本字串"
查找文本

在弹出的"R 文本字符串参考"窗口中将右边的滑块拖到最前面,然后在该第一行单击右键打开菜单,选择"查找文本",在弹出的搜索框中输入"revoke",点击"确定"开始搜索(注意取消"区别大小写")
查找文本

一直搜索,直到出现这三行,根据前人的经验,这三行就是控制QQ消息撤回的关键

OnNotifyBuddyMessageRevoked(pNotifyMsgBody, pDataE)

OnNotifyGroupMessageRevoked(pNotifyMsgBody, pDataE)
OnNotifyMiscMessageRevoked(pNotifyMsgBody, pDataE)

找到关键点

选中其中一行,双击后跳回"C LCG"窗口,找到这个命令的位置,注意箭头所示的那条线,一个完整的函数段是用类似[的框起来的
跳回CPU主窗口

滑动鼠标滚轮,找到这段命令的末尾,现在看到的是"retn 0x8"(记下来,后面要用到),这里的意思是这段函数最后一条命令是执行"retn 0x8"
找到函数末

再滚动鼠标滚轮,找到这段函数的起始行,在该行点击右键打开菜单,选择"汇编",输入前面查到的"retn 0x8",其目的就是在这段函数一开始就执行"retn 0x8",完全忽略中间的命令,这样QQ消息撤回就无效了
汇编函数起始

如法炮制,将这三条命名都改完,然后在"C LCG 主线程"窗口单击右键打开菜单,选择"复制到可执行文件>所有修改",然后选择"全部复制",这个操作的目的是把所有的修改复制回im.dll里去
复制全部修改

在弹出的"D 文件"窗口中单击右键打开菜单,选择"保存文件",这样我们就把im.dll修改完了
保存im.dll

然后我们把我们修改好的im.dll复制到".\Bin"替换原来的就好了(如果提示文件被使用不能替换,是由于其它文件占用或者TX的驱动保护,可以用文件暴力删除工具或者粉碎机来先删除),完成后我们就可以登陆QQ来测试了
替换原有im.dll,测试QQ防撤回
测试成功,本次教程结束!

注:
所有工具与思路均来源于互联网,感谢前人的付出!
也有人用nop或者dmp的方法来跳过撤回命令,但目前我使用的这个方法是操作最少最简单的,强烈推荐!
网上也有别人做好的成本补丁,但不推荐使用,因为不同版本的im.dll并不通用,使用后会导致QQ崩溃!

标签: none

添加新评论