首页
社区
课程
招聘
[原创]简单的TIM防撤回逆向
发表于: 2019-4-21 15:49 11476

[原创]简单的TIM防撤回逆向

2019-4-21 15:49
11476

加入看雪那么久了,都是在看各位大牛的逆向、病毒分析等,从来没有发过言,这个简单点的小例子能成为我在看雪的第一步。
现在的聊天软件都自带了撤回消息的功能,每次我们没有及时查看信息,被人撤回是,是不是心里难受痒痒着了?这个逆向撤回功能是之前学习的一个案例,现在分享一下。


发送的消息会在服务端和客户端都有保存。
服务端我们做不了什么,但是客户端我们可以不让他删除。
逆向逆向,猜的成分占有很大的一部分比例
TIM程序有很多的模块,我们先要做的就是确定下来撤回消息的功能写在了哪个模块内
我们用英文翻译软件来搜一下撤回的英文,撤回的英文单词有:revoke,cancel,recall等

我们可以用notepad++的文件搜索功能来看一下

可以看到IM.DLL内有与此相关的函数名

(PS:当然没有那么容易确认下来是这个模块,这就需要自己一个个去区分了,不在这里说那么多)

好了,知道撤回消息的功能是在哪个模块了,现在就拖入X32DBG进行逆向分析

最后来看下效果吧

如果TIM更新后此方法会失效,需要重新打补丁!!
最后发现,打了补丁后程序不怎么稳定了,以前是完美运行的,可能是TX做了什么检测吧,这里就不再做深入的分析了。
微信、QQ的PC软件都可以参照类似的方法,移动端的话我还没有去看过。

 
 

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 6
支持
分享
最新回复 (16)
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
2
学习
2019-4-21 16:20
0
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
3
感谢分享 学习了
2019-4-21 17:56
0
雪    币: 8
活跃值: (68)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
52有很多表示已经搞定PC QQ 微信防撤回
2019-4-21 17:57
0
雪    币: 15
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
思路不错,微信同理也可以这个思路来做吧。
2019-4-21 21:50
0
雪    币: 8387
活跃值: (4961)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
我记得之前用过防撤回  修改版 吃内存不知道怎么回事卡死电脑 容易奔溃
2019-4-21 23:37
0
雪    币: 66
活跃值: (2718)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
就是要思路嘛,更好举一反三
2019-4-22 14:57
0
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
8

前天研究了一天,防撤回倒是很快写好了,但是想弹出一条灰框提示是谁撤回了消息。
最开始的思路是注入一个dll。在nop判断的地方jmp到自己的函数内,然后call这个灰框消息。
但是往下往上跟了半天也没找到这个call。(准确来说找到几个比较像的call)
下断也没找到这几个字的明文,最多也只是看到了字符串xml配置项ID。貌似是对字符串有加密。
睡觉的时候才想了下,加密和没有明文应该是为了防止恶意程序发送伪官方信息进行诈骗。
(哭笑不得)
(其实TX完全可以对撤回消息的那段代码做一个crc,然后报个错什么的)
最后于 2019-4-23 06:59 被Sprite雪碧编辑 ,原因:
2019-4-23 06:57
0
雪    币: 15172
活跃值: (16837)
能力值: (RANK:730 )
在线值:
发帖
回帖
粉丝
9
Sprite雪碧 前天研究了一天,防撤回倒是很快写好了,但是想弹出一条灰框提示是谁撤回了消息。最开始的思路是注入一个dll。在nop判断的地方jmp到自己的函数内,然后call这个灰框消息。但是往下往上 ...
腾讯的聊天软件的聊天消息应该都是加密处理了,你直接搜索是搜不到的,或者你可以看看是怎么加密的,岂不也是功德一件?
2019-4-23 14:31
0
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
10
有毒 腾讯的聊天软件的聊天消息应该都是加密处理了,你直接搜索是搜不到的,或者你可以看看是怎么加密的,岂不也是功德一件?[em_86]
能力有限,不太擅长逆向 目前已知是会通过一个字符串ID 从根目录的一个xml文件读字符串 这个xml基本存放了整个TIM的字符串
2019-4-23 17:44
0
雪    币: 355
活跃值: (15)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
 感谢楼主分享,很有用啊
2019-4-26 14:40
0
雪    币: 4
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
Sprite雪碧 前天研究了一天,防撤回倒是很快写好了,但是想弹出一条灰框提示是谁撤回了消息。最开始的思路是注入一个dll。在nop判断的地方jmp到自己的函数内,然后call这个灰框消息。但是往下往上 ...
其实吧...有笨办法就是用手机端进行对比...
2019-4-27 09:37
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
容易崩溃,求更最新版的TIM3.2.2
2019-8-14 11:22
0
雪    币: 6157
活跃值: (4907)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
15
mark
2019-11-2 01:40
0
雪    币: 43
活跃值: (1084)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
感谢楼主分享
2019-11-2 13:47
0
雪    币: 299
活跃值: (199)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
17
感谢楼主
2019-11-3 11:32
0
游客
登录 | 注册 方可回帖
返回
//