欢迎光临
我们一直在努力

TIM防撤回实现(萌新之作)

本帖最后由 有语无语 于 2019-10-10 17:48 编辑

TIM防撤回实现

作为一个常年混迹各种群的资深潜水党,每次翻看聊天记录的时候都能发现一堆的撤回信息,看着非常不舒服,并且网上也有很多的防撤回例子提供学习,所以就打算自己也动手尝试做一个防撤回的功能。  

  1. 第一步通过notepad在bin目录下的所有dll中搜索revoke关键字

    <img src="https://attach.52pojie.cn/forum/201910/10/172659ykv87fwvhfjfil48.png"  />

    <img src="https://attach.52pojie.cn/forum/201910/10/172712jlxbbvmbbvi7yamt.png"  />

  2. 然后我们就可以上odx32dbg对这些DLL下断找CALL了,我这里使用的是x32dbg,因为它的搜索过滤比OD要舒服很多

> 1. 打开软件,附加进程,附加之后会自动断下来,记得F9
>
>     1570678092359
>
> 2. 在模块(快捷键:<kbd>Crtl</kbd>+<kbd>E</kbd>)中进入我们之前找到的DLL
>
>     1570690054873
>
> 3. 在模块内搜索字符串revoke,看看有没有比较可疑的地方,下断进行尝试
>
>     1570690271228这里有个EnableMsgRevokeMenuItem,看起来应该是软件初始化之类的,不管他,全部都下断点试试
>
> 4. 小号给自己发条消息并撤回,断点没反应,那就重复此步骤,在下一个模块内继续搜索下断,直到断下来

  1. 找到关键位置,进行具体分析

    > 1. 在im.dll中我们通过revoke发现了大量的关键字
    >
    >     1570691487069
    >
    >    L"DoRevokeBuddyMessage failed to get msg_info."撤回好友消息失败的日志,基本可以确定就撤回就和这个模块相关了,继续看看下面的字符
    >
    >      1570693000873
    >
    >    这三个有重大嫌疑啊,从上到下分别是 好友(buddy)、讨论组(discussion)、群(group)消息撤回,三个都下断点,进行尝试。
    >
    > 2. 小号发消息并撤回,成功断在了5FBBDE65:OnNotifyBuddyMessageRevoked(pNotifyMsgBody, pDataExtraInfo)
    >
    >    1570693873631
    >
    > 3. 单步往下,很快就可以看到一个大跳转,不过看了一下跳转的地址5FBBDFA2,是直接过了返回,再往下那块就是讨论组的撤回了,应该不是这里,继续往下
    >
    >     1570692365768
    >
    >     1570693154261
    >
    > 4. 来到第一个call,<kbd>F7</kbd>跟进
    >
    >     1570693796873
    >
    > 5. 发现两个大跳转,直接跳转到了返回处
    >
    >     1570697337499
    >
    > 6. 直接改之,<kbd>F9</kbd>,然后程序疯狂异常,无奈重启程序
    >
    > 7. 重启过程中想了下,都确定了这里就是实现撤回的函数,那直接返回应该也行的
    >
    > 8. 直接在函数入口处改返回
    >
    >     1570697684995
    >
    >    push ebp改为ret 8
    >
    >     1570697783038
    >
    > 9. 小号发消息撤回试试
    >
    >     1570698116679
    >
    >     <img src="https://attach.52pojie.cn/forum/201910/10/173117wooplleaupzpkjs6.png" alt="1570698131398" style="zoom:50%;" />
    >
    > 10. 第一张是电脑截图,第二张是手机截图,成功解决~
    >
    > 11. 依法修改群消息的撤回
    >
    >      1570698338305
    >
    >      1570698477258
    >
    >     成功。这里我是直接用的讨论组,因为我之前调试的时候发现讨论组撤回是直接走的群撤回逻辑,也就是说之前发现的三个关键处只需要修改两个就可以实现了,中间那个并没有发现哪里有调用
    >
    >      1570698766941

  2. 修改完成就直接打补丁呗。<kbd>Crtl</kbd>+<kbd>p</kbd>

    1570699000945

  3. 退出tim,将保存的文件替换掉原来的文件,记得备份,至此大功告成~

第一次发帖,有什么问题还望多多指教,感谢!
参考资料: https://www.52pojie.cn/thread-702082-1-1.html

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

TIM防撤回实现(萌新之作)

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

实用工具推荐

吾爱破解永久地址