Tim防撤回破解

目录

收集信息

这一步非常关键,因为在分析时,思路如果不对,基本上是分析不出来的。这里我们从敏感字符串开始。
由于我们要找的撤销功能,那我们要把撤销相关的英文、中文单词都找出来。这里使用百度翻译可以查看撤销的英文:
在这里插入图片描述
如图可知撤销英文单词:revoke,recall,cancel
当锁定了关键词之后,使用Notepad++的搜索功能,在文件中搜索。指定文件夹,搜索revoke
打开搜索
在这里插入图片描述
查看搜索结果
在这里插入图片描述
可以看到,有两个动态库与消息撤回有关,IM.dll和MsgMgr.dll。其他的根据查询到的字符串,并没有涉及消息。所以优先分析IM.dll和MsgMgr.dll

初步分析IM.dll和MsgMgr.dll
使用PEID或是其他PE文件查看DLL的导出,发现这两个DLL的导出函数都有以下四个函数:
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer

这四个函数是COM组件的标配。所以可以确定是COM组件。(COM组件是windows下抽象于二进制层的API接口,可以适应各种编程语言,包括C++,C#,VB等,比SDK API适应性更强)
在这里插入图片描述
在这里插入图片描述
可以发现MsgMgr.dll只有四个导出,其他没有了,而IM.dll还有几个导出函数,貌似与网络通信有有关(导出函数PostTask….),,所以暂时先不分析MsgMgr.dll,主攻IM.dll

使用x32dbg详细分析IM.dll

运行TIM,附加程序
在符号选项卡中找到IM.dll模块,进入其代码空间
在这里插入图片描述
查找该模块的所有字符串

在字符串中寻找和撤销(revoke)相关的

搜索字符串:搜索->当前模块->字符串
在这里插入图片描述
在字符串中中定位撤销字符串
在这里插入图片描述
由于撤销字符串比较多,为了方便定位代码,可以右键在所有命令上下断点

在这里插入图片描述
构建测试环境,寻找撤销CALL
再启动一个tim ,给被调试的tim 发消息,然后再撤销,发现会断到以下代码处,分析附近的代码。
在这里插入图片描述
测试附近的每一个CALL,让其直接返回,可以找到起作用的CALL。

经过测试附近代码,发现关键函数是以下CALL。
在这里插入图片描述
修改关键代码,完成patch
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

测试结果

在这里插入图片描述
在这里插入图片描述

总结

Tim 的聊天记录在本地和服务器都应该有保存,而撤销功能,服务器我们没有办法阻止,本地我们有机会做到不撤销,本节分析的最后结果可以验证我们所想,防撤销的原理就是patch掉修改本地聊天信息的代码,让对方撤销之后,本地依然显示即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值