逆向实战 (28)

简介: 上次分析说明

上次分析说明


  1. 将生成的html文件, 用Sublime Text打开继续分析 (主要是可编辑)
  2. 上次我们分析到了, v4是x21, 再去查看汇编代码, 发现x21是x0也就是self

微信图片_20220510040605.png

image.png


继续分析



微信图片_20220510040610.png

image.png


  1. 上面最后一句, 猜测返回是一个字典, 当然最好是打印出来看下

微信图片_20220510040615.png

image.png


       c.注意: 语法%c来获取类方法名

       d.注意: 要声明对应的类, 属性, 以及方法(要去对应头文件里找)

       e.注意: IDA分析的微信版本号, 要与你手机安装的是统一版本



微信图片_20220510040619.png

image.png


  1. 验证了我们的猜想, 返回是一个字典, 注意后缀M, 是个可变字典

微信图片_20220510040623.png

image.png


  1. 运用同样的逻辑还原接下来的方法

微信图片_20220510040626.png

image.png



微信图片_20220510040631.png

image.png


  1. 推导出来v34跟x21有关系
  2. 通过分析汇编源码来定位方法调用者

微信图片_20220510040636.png

image.png


追踪类型的方式



微信图片_20220510040640.png

image.png



微信图片_20220510040644.png

image.png


block分析



微信图片_20220510040648.png

image.png



微信图片_20220510040653.png

image.png



微信图片_20220510040657.png

image.png


  1. 后面的 (a1 + 32)不知道是什么, 可以通过看汇编, 当然也可以调试加断点


       b.调试

微信图片_20220510040700.png
image.png


       c.原hook方法里添加 %orig来按原方法执行, 编译运行

       d.附加进程到Xcode

       e.image list -> 拿到首地址

       f.dis -s 首地址+上面的地址, 注意上面的地址不能算第一个1


微信图片_20220510040704.png
image.png


       g.b 上面第一个地址(0x104ab20e0) -> 有加成功的回调

       h.c

       i.点开红包触发断点

       j.register read x1 -> 方法名


  1. register read x2 -> 调用对象地址
  2. po 对象地址 -> 打印一下
  3. 结合上面我们还原的代码,我们发现x2是mutable_dic, 要对比, 如果不行就调试打印一下, 重写hook方法, 控制台打印url_dic来验证或者猜测.
  4. 经过验证猜测应该是mutable_dic
  5. 截止这里, 这个开红包的方法基本还原了


hook红包方法


  1. 将我们还原的方法粘贴过去并补充那些未定义的类
  2. 分类方法的声明

微信图片_20220510040708.png
image.png


新的问题


  1. 此时打开红包的代码已经还原
  2. 但是思考能不能直接在接收到红包消息的时候, 去完成调用开红包的方法呢?
  3. 有两个问题需要解决


  1. 参数mutable_dic
  2. 调用OpenRedEnvelopesRequest: (我们还原开红包方法后, 发现的真正的开红包的请求)


  1. 需要hook -> OpenRedEnvelopesRequest: 这个方法


还原OpenRedEnvelopesRequest:



微信图片_20220510040712.png

image.png


  1. 现在的问题, 在收到红包消息的时候, 能不能拿到dic, 用来调用开红包的方法
  2. 发现接收消息的第二个参数, 与开红包的必要参数是同一个参数


完成


  1. 只要将我们还原的代码, 移植到收到红包消息的hook方法里就可以实现自动抢红包了
  2. 遇到的问题

微信图片_20220510040716.png
image.png


  1. 如图,拿不到timingIdentifier
  2. 那么这个参数最有可能什么时候有呢 -> 猜测,点开红包消息, 并弹窗的那个时候




目录
相关文章
|
8月前
|
数据安全/隐私保护 iOS开发 开发者
iOS 逆向编程(三)实操 Jailbreak 详细流程
iOS 逆向编程(三)实操 Jailbreak 详细流程
109 1
|
9月前
|
算法 Java API
逆向的流程和思路
逆向的流程和思路
|
存储 算法 C++
数据结构与算法——第四节 栈和队列(C 模拟实现+思路分析+运行截图)
对于栈和队列,我们在这里只是把 其底层的原理简单的说一下,等到C++说到STL的时候,我们还会详细地说。
151 0
数据结构与算法——第四节 栈和队列(C 模拟实现+思路分析+运行截图)
|
数据采集 监控 前端开发
数据预处理-历史爬虫判断-需求与实现思路|学习笔记
快速学习数据预处理-历史爬虫判断-需求与实现思路
93 0
数据预处理-历史爬虫判断-需求与实现思路|学习笔记
|
数据采集 SQL 大数据
数据清洗_思路和步骤|学习笔记
快速学习数据清洗_思路和步骤
129 0
【软件】【逆向】StarUML regist
【软件】【逆向】StarUML regist
70 0
逆向实战 (27)
用IDA分析MachO文件
159 0
逆向实战 (27)
|
Java iOS开发 Spring
逆向实战 (26)
逆向实战(26)
236 0
逆向实战 (26)
|
C++
逆向实战(插件完) (29)
对未实现的参数进行猜测
133 0
逆向实战(插件完) (29)