使用 Terminal 进行 LLDB 调试(0x01) --

2018-04-10  本文已影响135人  游城十代2dai

之前简单进行了 LLDB 的使用, 现在把微信的ShareExtension 中发送给好友的进行调试~ 由于我的越狱手机是 iPhone 5 所以我的架构选择都是 armv7
ps: 不知道是不是我的网络原因, 我在使用的过程中总会断开 lldb

0x00 源文件

Mach-o 文件
Headers
Hopper
Calculater

0x01 准备

$ ssh root@192.168.2.104  // 初始密码 alpine
$ debugserver *:12345 -a "WeChatShareExtensionNew"
$ process connect connect://192.168.2.104:12345
$ image list -o -f | grep WeChatShareExtensionNew // 我的是 0x000d3000
连接成功
记录下偏移前地址

0x02 探索

// -[ShareFriendViewController onSessionListViewConfirmSend:]
// 偏移前地址为: 0x00013512
// 偏移量: 0x000d3000
// 偏移后地址为: 0xE6512
$ br s -a 0xE6512
查找偏移前地址 断点成功
// -[MSEShareMainViewLogicController shareToFriends:]
// 偏移前地址为: 0x00015b0c
// 偏移量: 0x000d3000
// 偏移后地址为: 0xE8B0C
$ br s -a 0xE8B0C
断点成功
// sendUrlMessageToUser
// sendImageMessageToUser
// sendVideoMessageToUser
// sendFileAppMessageToUser
// 偏移前地址为: 00030bf2
// 偏移量: 0x000d3000
// 偏移后地址为: 0x103BF2
$ br s -a 0x103BF2
// 进入断点之后创建需要的内容
$ e (id)[MSEMessageMgr sharedInstance]  // 单利
$ e (id)[NSURL URLWithString:@"https://www.baidu.com"] // 分享出去的网址
$ e (id)[NSURL URLWithString:@"https://p0.meituan.net/coupon/b54603b7323106f65815e51dc906e7946475.jpg@!style1"] // 分享图标, 我用的美团外卖的
$ e (id)[$0 sendUrlMessageToUser:@"wxid_rkmvosx1qdn" withContentUrl:$1 withThumbnailImgUrl:$6 withUrlTitle:@"你猜我是不是美团" Desc:@""]

这就是创建步骤, 以及发送步骤, $7的时候发送了一个没有图标的, $8是一个有图标的, 还有一个带有描述的分享(没有截图那个)

PS: 研究这个的目的是, 我发现封号的微信, 可以通过这种方式发消息出去, 原本封号的微信是发不出去任何消息, 以及任何操作, 但是这个可以将标题作为我要发送的问题给别人, 告诉别人我封号了啊哈哈, 但是研究到一个地方出现了卡壳, 那就是 这个 ShareExtension 我没有办法转换成插件注入到 WeChat 中, 网上找了一个将 Mach-o 转换成 Dylib 的工具, 成功了, 但是这个 ShareExtension 中使用 Mars.Frameworks, 我没有办法加载, 导致进入界面就闪退, 当然也许不是这个的原因, 可能是不同进程不能插入的原因, 但是希望有解决办法的大神能帮我一下😂, 还有一种方式就是破解 ProtoBuff 的传输过程, 模拟请求达到效果

上一篇下一篇

猜你喜欢

热点阅读