-
-
[原创]简单的TIM防撤回逆向
-
2019-4-21 15:49
10736
-
0x1
加入看雪那么久了,都是在看各位大牛的逆向、病毒分析等,从来没有发过言,这个简单点的小例子能成为我在看雪的第一步。
现在的聊天软件都自带了撤回消息的功能,每次我们没有及时查看信息,被人撤回是,是不是心里难受痒痒着了?这个逆向撤回功能是之前学习的一个案例,现在分享一下。
0x2
发送的消息会在服务端和客户端都有保存。
服务端我们做不了什么,但是客户端我们可以不让他删除。
逆向逆向,猜的成分占有很大的一部分比例
TIM程序有很多的模块,我们先要做的就是确定下来撤回消息的功能写在了哪个模块内
我们用英文翻译软件来搜一下撤回的英文,撤回的英文单词有:revoke,cancel,recall等
我们可以用notepad++的文件搜索功能来看一下
可以看到IM.DLL内有与此相关的函数名
(PS:当然没有那么容易确认下来是这个模块,这就需要自己一个个去区分了,不在这里说那么多)
0x3
好了,知道撤回消息的功能是在哪个模块了,现在就拖入X32DBG进行逆向分析
- 附加运行TIM
- 搜索im.dll模块
- 在模块内搜索字符串revoke相关的函数
- 搜出来真多,在所有命令上设置断点
- 好了,现在给TIM发送消息并且撤回,看看会触发哪个断点
断在了此处
- 单步运行看看运行到哪后TIM消息框内的消息被撤回了
最后发现单步到这个函数后起效了
直接nop掉,或者你喜欢也可以jmp跳转
- 最后打补丁并且替换掉原先的im.dll
0x4
最后来看下效果吧
0x5
如果TIM更新后此方法会失效,需要重新打补丁!!
最后发现,打了补丁后程序不怎么稳定了,以前是完美运行的,可能是TX做了什么检测吧,这里就不再做深入的分析了。
微信、QQ的PC软件都可以参照类似的方法,移动端的话我还没有去看过。
阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开
发者可享99元/年,续费同价!