2024年5月31日发(作者:华玛丽)
原文地址
:/papers/13824
0x00
序
上一章我们讲到了在非越狱的
iOS
上进行
App Hook
。利用这个技术,你可以在非越狱的
iOS
系统上实现各种
hook
功能(
e.g.,
微信自动抢红包,自动聊天机器人,游戏外挂等)。但因为篇幅原
因,有一些细节并没有讲的非常清楚。没想到阅读量非常大,很多人都来私信问我一些
hook
中遇到的问题,并且问的问题都很类似。于是我专门写了一篇答疑的文章来帮助大家解决一些常见
的问题,顺便介绍一下如何在
iOS 9
上进行
app
砸壳
(Dumpdecrypted)
。另外想看主线剧情的读者也不要着急,下一篇就会给大家带来如何过沙盒的文章。
《
iOS
冰与火之歌》系列的目录如下:
1. Objective-C Pwn and iOS arm64 ROP
2.
在非越狱的
iOS
上进行
App Hook
(番外篇)
3. App Hook
答疑以及
iOS 9
砸壳(番外篇)
4. █████████████
5. █████████████
另外文中涉及代码可在我的
github
下载
:
/zhengmin1989/iOS_ICE_AND_FIRE
0x01
如何编译
很多人私信给我提到
无法编译成功,这个问题大多是因为没有安装
Command Line Tools
和越狱开发环境
iOSOpenDev
造成的,这两个工具都是搞
iOS
安全必备的环境,可以按照以下步骤
进行安装:
Command Line Tools
是
Xcode
的一个命令行工具插件,安装方法有两种:
(1)
打开终端,输入:
#!bash
xcode-select --install
(2)
去苹果官网下载安装包
/downloads/
iOSOpenDev
里提供了很多越狱开发的模板,可以在
/download/
下载到。安装完
iOSOpenDev
后就可以在
Xcode
里通过新建一个
project
看到我们进行非越狱
Hook
的时候需要用的
CaptainHook
了。
0x02
如何得到
App Store
上解密后的
ipa
我们开发时的
app
默认是没有加密的,但
App Store
上下载的
app
却被加了密。如果我们想要进行
hook
以及重打包的话,我们需要拿到解密后的
app
才行,否则的话,就算
hook
成功,签名成功,
安装成功,
app
还是会闪退。
(1)
查看
app
是否加密:
首先用
file
来看一下
ipa
解压后的二进制文件包含哪些架构(
e.g., armv7, arm64
)。如果有多个架构的话,最好是把所有的架构都解密了。但理论上只要把最老的架构解密就可以了,因为新的
cpu
会兼容老的架构。比如我们拿微博作为例子,可以看到
的客户端包含了
armv7
和
arm64
这两个架构。
随后我们可以通过
”
otool –l
”
来输出
app
的
load commands
,随后再查看
cryptid
这个标志位来判断
app
是否被加密了。如果是
1
的话代表加密了,如果是
0
的话代表解密了。
2024年5月31日发(作者:华玛丽)
原文地址
:/papers/13824
0x00
序
上一章我们讲到了在非越狱的
iOS
上进行
App Hook
。利用这个技术,你可以在非越狱的
iOS
系统上实现各种
hook
功能(
e.g.,
微信自动抢红包,自动聊天机器人,游戏外挂等)。但因为篇幅原
因,有一些细节并没有讲的非常清楚。没想到阅读量非常大,很多人都来私信问我一些
hook
中遇到的问题,并且问的问题都很类似。于是我专门写了一篇答疑的文章来帮助大家解决一些常见
的问题,顺便介绍一下如何在
iOS 9
上进行
app
砸壳
(Dumpdecrypted)
。另外想看主线剧情的读者也不要着急,下一篇就会给大家带来如何过沙盒的文章。
《
iOS
冰与火之歌》系列的目录如下:
1. Objective-C Pwn and iOS arm64 ROP
2.
在非越狱的
iOS
上进行
App Hook
(番外篇)
3. App Hook
答疑以及
iOS 9
砸壳(番外篇)
4. █████████████
5. █████████████
另外文中涉及代码可在我的
github
下载
:
/zhengmin1989/iOS_ICE_AND_FIRE
0x01
如何编译
很多人私信给我提到
无法编译成功,这个问题大多是因为没有安装
Command Line Tools
和越狱开发环境
iOSOpenDev
造成的,这两个工具都是搞
iOS
安全必备的环境,可以按照以下步骤
进行安装:
Command Line Tools
是
Xcode
的一个命令行工具插件,安装方法有两种:
(1)
打开终端,输入:
#!bash
xcode-select --install
(2)
去苹果官网下载安装包
/downloads/
iOSOpenDev
里提供了很多越狱开发的模板,可以在
/download/
下载到。安装完
iOSOpenDev
后就可以在
Xcode
里通过新建一个
project
看到我们进行非越狱
Hook
的时候需要用的
CaptainHook
了。
0x02
如何得到
App Store
上解密后的
ipa
我们开发时的
app
默认是没有加密的,但
App Store
上下载的
app
却被加了密。如果我们想要进行
hook
以及重打包的话,我们需要拿到解密后的
app
才行,否则的话,就算
hook
成功,签名成功,
安装成功,
app
还是会闪退。
(1)
查看
app
是否加密:
首先用
file
来看一下
ipa
解压后的二进制文件包含哪些架构(
e.g., armv7, arm64
)。如果有多个架构的话,最好是把所有的架构都解密了。但理论上只要把最老的架构解密就可以了,因为新的
cpu
会兼容老的架构。比如我们拿微博作为例子,可以看到
的客户端包含了
armv7
和
arm64
这两个架构。
随后我们可以通过
”
otool –l
”
来输出
app
的
load commands
,随后再查看
cryptid
这个标志位来判断
app
是否被加密了。如果是
1
的话代表加密了,如果是
0
的话代表解密了。