Ipad微信协议

layout: post
title: IPad微信协议 date: 2019-08-21 categories: tech

环境及工具

XCode

Theos github上有

MonkeyDev github上有

代码签名 ldid 可以从brew安装

手机越狱 http://canijailbreak.com

usb端口映射 tcpreplay.py usbmux ipproxy

usbmuxd虽然目前最新的版本是1.1.0,但是1.1.0版本和1.0.9版本仅支持Linux系统,也就是说我们的Mac还是得下载v1.0.8的版本,下载地址(usbmuxd-v1.0.8)。下载完后,将下载的文件进行解压,内容如下所示:

dumpdecrypted 脱壳 http://liaogang.github.io/tech/2018/03/12/APP%E8%84%B1%E5%A3%B3.html

ipa安装 可以从pp助手上下载到脱壳的ipa ipainstaller console. github上用 , 还可以用monkey dev和app模板

cycript 注入app动态执行oc代码,打印数据 http://www.cycript.org 在cydia里安装,如果cydia的版本用不了。试下重签名,如果还是用不了,

IDA7.0 破解版

LLDB DebugServer 动态调试,lldb macOS自带。 debugserver手机里有. http://liaogang.github.io/tech/2018/02/03/iOS%E9%87%8C%E7%94%A8LLDB%E8%B0%83%E8%AF%95%E7%AC%AC%E4%B8%89%E6%96%B9App.html

class-dump 用于从二进制中导出头文件

runtime headers 查看各种版本的iOS系统头文件

logos语法

fishhook github上有

去掉安装app时的签名校验 https://github.com/angelXwind/AppSync

Reveal 破解版 https://www.waitsun.com/reveal-4-0.html

rvictl macOS 自带,远程虚拟接口工具, 把mac连接的手机映射成一个虚拟网卡用于抓包

应用程序包路径

沙盒路径: /var/mobile/Containers/Data/Application/8CF3DA4E-BF8E-4509-93D7-D131E12F7176 bundle路径: /var/containers/Bundle/Application/5044D35F-ECB1-4E00-872C-7805F8C14AD8/Aweme.app/Aweme

符号化Tweak里的bug http://liaogang.github.io/tech/2018/02/03/%E5%A6%82%E4%BD%95%E8%BF%BD%E6%9F%A5Tweak%E9%87%8C%E7%9A%84bug.html

如何添加新接口

CGI接口参数

1. 可以先开启xlogger查看mar 库的输出日志
 	2. 可以查看wechatNote的cgi.mm和cmdidlist.mm

ProtoBuf Request 及 Response 参数

  1. 导出Protobuf结构,在strings window中搜索关系字 GetQRCodeRequest(以我的二维码接口为例.) 把整个ClassData拷过来。 一般类的成员变量顺序和protobuf的filed number是对应的。 可以通过charles来确认。

如果实在无法确认field number ,可以把数据从charles里导出来,拷到手机里去。 进入cycript动态反序列化。

data = [NSData dataWithConstentOfFile: @”/var/mobile/GetQRCodeRequest”]

r = [GetQRCodeRequest parseFromData: data]

再打印出相应字段 [r userName]

[r opCode]与charles的值作对比

  1. 在iPad中安装wechatSender HOOK,先在MyMsg中设置好代理端口,让请求经过charles

  2. 开启charles

  3. 开启后台web服务。可以用python -m SimpleHTTPServer 8880 或开启工程DynamicServer

LLDB调试

  1. 安装debugserver
  2. 在LLDB中插入python脚本sbr.py方便打印插入断点

  3. 常见函数调用约定(x86、x64、arm、arm64)

  4. GDB to LLDB command map

资源

##bbs.iosre.com

##pewpewthespells.com

##NSBlog

Reverse Engineering Mac OS X