神秘技术,防好友撤回QQ消息神器,Python码农神发明!

关键时刻,第一时间送达!

作者:Python新世界

https://www.jianshu.com/p/d7e4ec86a64c

Python开发整理发布,转载请联系作者获得授权

序言

开始

准备工作

实验开始

按照惯例,先 otool 一下看看是不是解密的,不过在越狱软件下肯定是解密的了。

otool -l

/Users/TsuiYuenHong/Downloads/PP 下载/应用/QQ-6.5.8(越狱应用)/Payload/QQ.app/QQ | grep crypt

然后,使用 class-dump 看看有什么可用的信息

class-dump-H

/Users/TsuiYuenHong/Downloads/PP 下载/应用/QQ-6.5.8(越狱应用)/Payload/QQ.app -o qq

class-dump

这里就要用到 目测估计法,哈哈,就是这么简单粗暴。撤回无非就几个单词,revoke / recall / withdraw,(⊙v⊙) 那就都试试吧。不过这次运气比较好,试到 recall 就发现了可能有用的信息。

在头文件中发现一个叫

QQMessageRecallModule 的类,这翻译过来不就是 QQ信息撤回模块 吗?

还发现了里面有个 处理撤回通知 的方法

●(void)handleRecallNotify:(struct RecallModel *)arg1 isOnline:(BOOL)arg2;

那就直接从这个方法入手吧。

QQ可执行文件丢进hooper,搜索handleRecallNotify

返回值是void,那我就再次简单粗暴直接在函数一开始就return吧。然后使用hooper重新生成可执行文件,替换掉原本的QQ可执行文件

然后将QQ.app放到payload文件夹下,然后压缩并重命名为QQ.ipa,装到越狱设备上运行。

因为手上没有iPhone越狱设备,所以就丢到iPad运行。

这是用 iPhone 发的信息,并且间隔 1 分钟后撤回。

iphone

这是我在 iPad 运行的修改版本,可以看见之前被撤回的信息还在。

iPad

后记

其实这个过程并不像文本一样简单,期间还试过乌龙,例如在找撤回方法的时候就试过iPad弄到自己不能撤回,hhhhh。

关于为什么不能在非越狱设备上运行,我也有尝试过,不过QQ会检测签名问题,所以当我重签名之后,会提示签名被修改,而不能正常运行。目前还在尝试...

不过总算也是成功了,快去试试吧!

哈哈~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180813B1IGGH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券