美文网首页TIDE_网络安全
X32dbg 实现TIM和微信的防撤回

X32dbg 实现TIM和微信的防撤回

作者: Tide_诺言 | 来源:发表于2019-04-30 16:53 被阅读117次

    笔者作为信息安全行业的一名web狗,自知web安全领域相对来说过于狭隘,必须要寻求新的突破,偶然情况下接触到了逆向,因此决定踏上逆向工程这条漫漫长路。
    作为一名刚刚接触逆向的小白,对于TIM的防撤回是在网上相关文章帮助下实现的,学习相关思路,独自完成了微信pc端的防撤回功能。

    本次实验使用工具:notepad++,x32dbg,PDIE

    TIM防撤回

    信息收集

    信息收集在web安全中十分重要,收集到的信息是否全面完整,关联对web的渗透能走多远。
    同理,逆向工程对于信息收集的要求更为严格,一旦收集到错误的信息,就需要花费大量的时间去验证错误。
    本次实验的目标是完成TIM的信息防撤回,重点在于对数据的撤销和撤回。
    使用百度翻译,查看其对应英文用法。

    已经关键词:revoke,cancel,rescind,withdraw
    使用notepad++查找程序文件夹关键字。

    有两个动态库与消息撤回有关,IM.dll和MsgMgr.dll。其它查询到的字符串,并没有涉及消息。因此优先分析IM.dll和MsgMgr.dll。

    分析查询到的文件

    使用PDIE查看IM.dll和MsgMgr.dll文件的输出表。

    其中
    DllCanUnloadNow
    DllGetClassObject
    DllRegisterServer
    DllUnregisterServer
    这四个函数是COM组件的标配。(COM组件是windows下抽象于二进制层的API接口,可以适应各种编程语言,包括C++,C#,VB等,比SDK API适应性更强)
    而MsgMgr.dll中只有COM组建的输出,因此优先分析IM.dll

    使用32dbg分析IM.dll

    首先登录TIM,使用32dbg附加到TIM的进程上

    在符号栏功能下左下角搜索栏搜索im.all,并且双击进入。

    搜索im.dll中的所有字符串。

    image.png

    搜索关键字revoke


    由于撤销的字符串数量过多,因此采用全部断点,分析运行程序。
    右键选择

    一直点击运行,直到左下角的暂停变为running状态。

    tips(逆向中的设置断点分析程序和web渗透测试中使用burp抓包分析数据包分析思路一致)

    寻找撤销CALL

    使用另一个qq对tim测试qq发送信息,并且撤销。
    左下角显示显示暂停表示断点成功,查看断点程序。

    对附近的所有call进行测试,可以使用nop替代call内容,排查真正起作用的call。
    当发现使用nop替代6060E091的数据时,信息不会被撤回,因此判断此处为撤回功能的关键call。


    因此直接使用nop替换存在一定风险,比如说改位置还可能被其它位置调用,有可能导致程序错误,因此在大多数情况下都是使用jmp指令跳过关键call。

    右键补丁,修补文件,替换掉原本的im.dll,就完成了对TIM的防撤回。



    TIM对群信息的防撤回,发送群信息,并撤回进行测试。更改位置为:


    同样使用jmp跳过撤销指令。

    微信防撤回

    微信防撤回的实现过程和TIM思路一致,只不过关键字略有不同。
    笔者对中间过程就不再赘述,只是把关键位置说明一下。
    通过收集相关信息
    发现微信的撤回指令在文件WeChatWin.dll中
    关键为revokemsg
    设置断点

    经过测试,6cE1774C处的call为关键位置。

    使用jmp命令跳过执行。

    经测试,微信pc端,个人消息撤回和群消息撤回使用的同一个call。
    保存补丁替换微信目录下的同名文件即可实现微信防撤回。

    总结

    防撤销的原理非常简单,无论是TIM还是微信聊天记录都是保存在本地的,而防撤回就是修改本地聊天信息的代码,让对方撤销之后,本地仍然可以显示出来。
    作者作为一个汇编还没有学完的逆向新手,对实验中的一些数据和操作暂时也解释不清楚,只能希望自己可以从理论和实践双向出发来学习逆向。若文章中有不正确的地方欢迎修正

    相关文章

      网友评论

        本文标题:X32dbg 实现TIM和微信的防撤回

        本文链接:https://www.haomeiwen.com/subject/tsfvnqtx.html