QQ防撤回
- 使用工具:x64dbg
- 实现平台:win10
QQ聊天软件是现在年轻人们常用的通讯软件,尤其是在群聊,斗图和文件传输功能上特别优秀,但是在群聊中某些人发了一条信息后马上就撤回了,这让我们没及时注意到的人就感觉到不爽,所以就分析一下防撤回。
用有道词典或者百度也可查询一下撤回的英文单词。
找到QQ执行文件所在目录,用notepad++中 搜索->在文件中查找
然后输入QQ执行程序所在路径
最后在搜索revoke的时候搜索到一些内容,点击后发现在IM.dll和MsgMgr.dll中都是一些关于消息类型的revoke,那么接下来主要分析这两个模块。
首先登录两个QQ,附加调试其中一个QQ
然后F9把程序运行起来,在符号中找到im.dll模块,然后双击进入该模块。
之后右键在该模块中查找revoke字符串
在搜索中输入revoke字符串后会很出相关信息,我们也不知道撤回时调用的到底是哪里所以:
- 先用另一个QQ发送消息给被调试的QQ
- 然后再把刚才搜索到的全部信息下上断点
- 在另一个QQ上撤回消息
- 被调试QQ断下,发现断点位置
单步跟踪附近代码,发现有一个条件跳转是根据一个函数的返回值执行的,测试把这行跳转代码nop掉
再发送消息后撤回,查看结果发现,发送方撤回后接收者没有被撤回
那就确认了此处的跳转就是关键跳转,接下来给im.dll打一个补丁就行了。
操作是:右键->补丁->修补文件->保存。 因为这些代码在im.dll模块中,所以打这个文件的补丁