鞋子出售weixingongzhonghao ZHL930818

iOS逆向:微信逆向及动态库开发过程中的坑
最近对 iOS 逆向很感兴趣,想学习下如何通过逆向app、分析源码、注入动态库的方式来给别人的软件增加些酷炫的功能。决定拿微信练手。
先上几个教程:
然而,真正开始学习后,发现做逆向的人本来就不多,而且由于法律法规问题,导致很多教程都含糊其辞、较为浅显。而随着 iOS 系统的更新,安全性也越来越强,以往教程中的不少逆向工具,都失效或者改变了使用方法。
教程中已有的步骤,本文不再累述;仅记录我踩过的一些坑。
#【第一个瓶颈】ios9.3 后,cycript 由于权限问题无法 hook 进程
*** _syscall(connect(socket, reinterpret_cast&sockaddr *&(&address), sizeof(address))):../Handler.cpp(169):CYHandleSocket [errno=1]
*** _assert(system(inject.str().c_str()) == 0):../Inject.cpp(119):InjectLibrary
解决 --》 使用一部 iOS 8.1.1 的 iPod 来 hook
9.8 60 ?? Ss 12:50PM 0:11.31 /var/mobile/Containers/Bundle/Application/EF82C83B-6CCA--AA15C8B8D042/WeChat.app/WeChat
@"/var/mobile/Containers/Data/Application/0EE9-41E8-B38F-B01C7C5B6645/Documents"
# dylid_insert 指令,执行完后,在本目录下得到 WeChat.decrypted 文件。
DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/0EE9-41E8-B38F-B01C7C5B6645/Documents/dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/EF82C83B-6CCA--AA15C8B8D042/WeChat.app/WeChat
# 将 WeChat.decrypted 文件复制到本地。但后来发现,mac端的 class-dump 是64位的,和iPod不适配,故无法成功将头文件dump出来。于是决定在iPod上进行 class-dump。
scp WeChat.decrypted :~/Desktop
# 使用 class -dump 把头文件暴露出来
class-dump -s -S -H ./WeChat.decrypted -o ./header6.3-arm64
# 将 ipod 上的头文件复制到电脑本地(电脑需要先开启远程登录)
scp -r header6.3-arm64 :~/Desktop/wechat
# 安装 iosOpenDev
参考:《在xcode7下安装iOSOpendev,并使用iOSOpendev模板编译iOS9钩子》(
)、《iOSOpenDev安装》(
安装 iOSOpenDev 时,我根据教程先装了 MacPort, 装完后 还不能直接执行 sudo port -v selfupdate 指令更新 MacPort,而要先配置环境变量。详见此处第2.5条 (
安装 Xcode Command Line Tools
# 查看指定页面 ui 层级结构
UIApp.keyWindow.recursiveDescription().toString()
# make package install 坑
动态库写完后,需要进行package install。运行发现报错。
? wxopenredbag make package install
==& Error: The vendor/include and/or vendor/lib directories are missing. Please run `git submodule update --init --recursive` in your Theos directory. More information: .
make: *** [before-all] Error 1
(按说明,到 theos 目录运行 git submodule update --init --recursive 指令就好)
? wxopenredbag make package install
& Making all for tweak WXOpenRedBag…
==& Preprocessing Tweak.xm…
Tweak.xm:2: error: %orig does not make sense outside a method
make[3]: *** [/Users/liqiyu/Work/Hackor/myCode/WeChat/wxopenredbag/.theos/obj/debug/armV7/Tweak.xm.b8bea91d.o] Error 22
make[2]: *** [/Users/liqiyu/Work/Hackor/myCode/WeChat/wxopenredbag/.theos/obj/debug/armV7/WXOpenRedBag.dylib] Error 2
make[1]: *** [internal-library-all_] Error 2
make: *** [WXOpenRedBag.all.tweak.variables] Error 2
(文件中,有俩方法是自动生成的,如:
- (void).cxx_destruct { % % }
该方法方法名以"."开头,显然有问题。把"."删除后即可成功 install)
# 连接xcode打开越狱机器控制台,查看 logify 输出
打开Xcode-&Window-&Device→你的设备,下面有Log显示,但未找到微信logify输出
# 反汇编工具 hooper 查看偏移量
用 hooper 打开之前砸壳后获得的 WeChat.decrypted 文件,并在左侧框搜索 addMessageNode 方法
1、要把 WeChat 文件拖入 hooker 中来打开,若使用 hooker 的 File -& open 来打开则会打开失败!
2、打开时会让你选择armv7或者arm64,这需要根据你越狱手机的cpu类型来选,一定要和你的手机一致!
# 通过lldb远程调试iOS App
./debugserver *:微信的pid -a WeChat
另开一个终端,输入3条指令:
platform select remote-ios
process connect
然后输入指令获取进程基地址:
image list -o -f
br s -a '0x000c57fb4'
没有更多推荐了,Hi,这是的腾讯微博,人海茫茫相遇不易,立即登录,别错过!
(@xutianyu930818)
Copyright & 1998 - 2018 Tencent. All Rights Reserved

我要回帖

更多关于 weixin pc 的文章

 

随机推荐