tnxts 发表于 2023-4-22 17:25

使用x64dbg实现qq私聊与群消息防撤回

由于qq是32位的所以需要用x32dbg调试,打开x32dbg。

![](https://storage.tnxts.com/pictures/202304161309341.png)

开启qq后打开想要用来测试的聊天窗口,因为这里首先进行私聊的防撤回,所以打开的是用户的聊天窗口。

!(https://storage.tnxts.com/pictures/202304161310582.png)

然后回到x32dbg,点击文件->附加,找到聊天窗口的进程,点击附加。

!(https://storage.tnxts.com/pictures/202304161312765.png)

附加后先到断点选项卡里禁用所有断点,然后在工具栏里找到调试,然后选择运行,让程序正常运行。

!(https://storage.tnxts.com/pictures/202304161314877.png)

!(https://storage.tnxts.com/pictures/202304161312812.png)

接下来就是开始找私聊消息撤回函数的地址,首先在符号选项卡里找到im.dll,可以用过滤器快速找到。

!(https://storage.tnxts.com/pictures/202304161314426.png)

双击它,然后cpu选项卡就会显示im.dll的汇编,我们要找的撤回函数就在里面。

!(https://storage.tnxts.com/pictures/202304161312487.png)

在界面右键,然后找到搜索->当前模块->字符串,点击它进入引用选项卡。

!(https://storage.tnxts.com/pictures/202304161312692.png)

!(https://storage.tnxts.com/pictures/202304161313195.png)

我们搜索revoke,发现出现了很多反汇编。

![](https://storage.tnxts.com/pictures/202304161314514.png)

全打上断点。

!(https://storage.tnxts.com/pictures/202304161313582.png)

用小号发个消息,然后撤回,发现中断在0X0F01D112C。

!(https://storage.tnxts.com/pictures/202304161314222.png)

点进去看看。

!(https://storage.tnxts.com/pictures/202304161313099.png)

接下来就是测测附近的**call**,F8往下走看看经过了哪些call,然后可以直接用nop替换或者用jmp跳过也可以用ret来代替这个call的返回值,来确定是否是撤回函数,这个是需要自己测试,我在这里说一下如何用nop替换,如下框起来的call就是我们要替换的。

!(https://storage.tnxts.com/pictures/202304161313212.png)

选中它然后按空格,我们就可以在输入框里修改成自己想改成的汇编指令。

!(https://storage.tnxts.com/pictures/202304161313746.png)

直接改成nop,最好选上用nop填充这样比较直观。

!(https://storage.tnxts.com/pictures/202304161313699.png)

替换后的。

!(https://storage.tnxts.com/pictures/202304161313675.png)

然后我们将断点全部禁用,再F9让QQ正常运行。如图,消息并没有撤回,这就说明我们找到了撤回函数,并让它失效了。

!(https://storage.tnxts.com/pictures/202304161313053.png)

然后就可以打补丁,用打了补丁的IM.dll去替换原本的IM.dll。在修改处右键然后选择补丁。

!(https://storage.tnxts.com/pictures/202304161313114.png)

选择修补文件,并将文件名保存为IM.dll,注意大小写。

!(https://storage.tnxts.com/pictures/202304161313703.png)

之后用IM.dll替换QQ根目录/bin下的IM.dll就完成了,重启QQ后私聊消息是不会撤回的,记得备份一下原来的IM.dll。

群聊消息撤回也是同理,可以在这个补丁的基础上继续找到群聊消息撤回函数,步骤和之前一样,就是要注意群聊消息函数比较难找,最好是从上往下一个个的排除,有耐心肯定会找得到的。

那么,这个记录也就完事了,有什么问题可以在评论区问我,不发成品补丁哈,怕律师函。

还有就是这个只是防本地消息的撤回,服务器上还是撤回了的,所以在其他设备上看还是会显示消息已撤回。

smile1110 发表于 2023-4-23 18:32

本帖最后由 smile1110 于 2023-4-23 18:33 编辑

@tnxts 哥们,就你和@云在天这么搞,其他人都是ce搜已撤回三个大字,然后根据地址下init3硬件调试断点,六个地址中有一个是,发送第二次消息,直接在堆栈就定位到这个call,这才是从头来的方法,通杀tim,微信,qq,而不是上来就知道哪个dll中。

Hmily 发表于 2023-4-23 10:14

图片盗链无法显示,上传论坛本地吧。

huobingqilin 发表于 2023-4-23 10:34

拿走,去试试

szwangbin001 发表于 2023-4-23 11:22

大佬,这个撤回提醒可以改成自定义的嘛{:1_918:}

gdfn 发表于 2023-4-23 12:59

微信的教程有吗

tnxts 发表于 2023-4-23 13:00

szwangbin001 发表于 2023-4-23 11:22
大佬,这个撤回提醒可以改成自定义的嘛

没太明白你说的撤回提醒是什么意思

szwangbin001 发表于 2023-4-23 13:27

tnxts 发表于 2023-4-23 13:00
没太明白你说的撤回提醒是什么意思

就是别人撤回的时候,你这里会有个提示,“xxx撤回了一条消息”,把这个提示改成自己的定义的:lol

ibrucekong 发表于 2023-4-23 13:29

好赞啊,手把手教程

我眼:看着也很简单嘛,不难不难
我手:你来你来。。

gdfn 发表于 2023-4-23 13:31

微信的还没有教程强烈建议楼主搞一个

d403408717 发表于 2023-4-23 13:36

QQ烂大街了,就是微信没有人出:lol
页: [1] 2 3 4 5
查看完整版本: 使用x64dbg实现qq私聊与群消息防撤回