1、Xcode

历届版本:https://developer.apple.com/documentation/xcode-release-notes

AppStore中搜并安装XCode & 在网页下载https://developer.apple.com/xcode


2、class-dump

class-dump,是可以把Objective-C运行时的声明的信息导出来的工具。其实就是可以导出.h文件。用class-dump可以把未经加密的app的头文件导出来

安装

官网下载:http://stevenygard.com/projects/class-dump/

github下载:https://github.com/nygard/class-dump

点击下载后解压后会有class-dump和源码文件。
将class-dump 复制到/usr/bin/class-dump。如果是OS X 10.11,因为没有/usr/bin文件夹的写权限,所以将class-dump复制到/usr/local/bin/class-dump即可。

打开Terminal,执行命令赋予其执行权限:

sudo chmod 777 /usr/bin/class-dump

使用方法参考大佬:https://juejin.cn/post/6911142378883514375


3、Tweak

Tweak的实质就是iOS平台的动态库。iOS平台上有两种形势的动态库,dylib与framework。Framework这种开发者用的比较多,而dylib这种就相对比较少一点。而tweak用的正是dylib这种形势的动态库。


4、Theos

Theos是一个越狱开发工具包,用来创建Tweak项目。其中包含了Logos Hook和CaptainHook两种hook框架

Github: https://github.com/theos/theos 官方建议把Theos安装在/opt/theos目录下

sudo git clone--recursive https://github.com/theos/theos.git /opt/theos

添加环境变量

vim ~/.bash_profile
export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH
source ~/.bash_profile

检查是否生效

echo $THEOS
echo $PATH

输入 nic.pl 查看是否安装正确

.zshrc文件中并没有定义任务环境变量。解决办法在~/.zshrc文件最后,增加一行

source ~/.bash_profile
# 然后立即生效
source ~/.zshrc

5、ldid

ldid用来专门签名iOS可执行文件的工具,用以在越狱iOS中取代Xcode自带的codesign。如果不安装,那么产生的deb文件就安装不到手机上

brew install ldid

执行brew install ldid报错Command failed with exit 128:git 原因是安装homebrew时缺少两个包

解决方式:

输入brew -v后会提示你执行两个配置命令,直接复制执行就ok了!


6、MonkeyDev

MonkeyDev是基于iOS OpenDev的升级,是一个为越狱和非越狱开发人员准备的工具。强大的iOS重打包框架, 其中集合了各种hook框架以及自动签名

Github: https://github.com/AloneMonkey/MonkeyDev

安装:

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install)"

安装时报错:

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

报这个错误的原因是xcode-select不在默认的路径

解决方案:

  1. 如果您还没有安装 Xcode(从https://appstore.com/mac/apple/xcode获取 )。

  1. 接受条款和条件。

  1. 确保 Xcode 应用程序在/Applications目录中(不是/Users/{user}/Applications)。

  1. xcode-select使用以下命令指向 Xcode app Developer 目录:
    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

注意:确保您的 Xcode 应用程序路径正确。

  • 代码:/Applications/Xcode.app/Contents/Developer

  • Xcode-测试版:/Applications/Xcode-beta.app/Contents/Developer

参考:https://stackoverflow.com/questions/17980759/xcode-select-active-developer-directory-error

现在你就可以进行安装了,如果你是xcode12及以上,建议进行下面操作在进行安装不然会报下面这个错误:

File /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/MacOSX Package Types.xcspec not found

出现上面这个错误的话:

你只需要再次打开MonkeyDev/bin文件下的md-install文件,找到下面三行代码然后注释掉

#macosxSDKSpecificationsPath=$macosSdkPlatformPath/Developer/Library/Xcode/Specifications
#packageTypesForMacOSXPath="$macosxSDKSpecificationsPath/MacOSX Package Types.xcspec"
#productTypesForMacOSXPath="$macosxSDKSpecificationsPath/MacOSX Product Types.xcspec"

注释后加上下面三行代码,然后保存文件即可,开始安装.

macosxSDKSpecificationsPath=$macosSdkPlatformPath/Developer/Library/Xcode/PrivatePlugIns
packageTypesForMacOSXPath="$macosxSDKSpecificationsPath/IDEOSXSupportCore.ideplugin/Contents/Resources/MacOSX Package Types.xcspec"
productTypesForMacOSXPath="$macosxSDKSpecificationsPath/IDEOSXSupportCore.ideplugin/Contents/Resources/MacOSX Product Types.xcspec"

本地安装的方式,clone代码到本地:

git clone https://github.com/AloneMonkey/MonkeyDev.git
cd MonkeyDev/bin

在bin目录下,打开md-install文件,注释掉下载frida-ios-dump的代码

#下载frida-ios-dump#echo"Downloading frida-ios-dump from Github..."#downloadFile "https://raw.githubusercontent.com/AloneMonkey/frida-ios-dump/3.x/dump.py""$MonkeyDevPath/bin/dump.py"#downloadFile "https://raw.githubusercontent.com/AloneMonkey/frida-ios-dump/3.x/dump.js""$MonkeyDevPath/bin/dump.js"

新建一个目录,clone frida-ios-dump代码到本地

git clone https://github.com/AloneMonkey/frida-ios-dump.git
cd frida-ios-dump

手动将frida-ios-dump文件夹下的dump.py和dump.js拷贝到/opt/MonkeyDev/bin目录下

copy完成后,进入MonkeyDev/bin目录,执行MonkeyDev的安装:

sudo bash md-install

安装完成后,查看xcode,出现monkeydev则安装成功,可以创建monkeydev工程了

出现xcode问题参考:https://juejin.cn/post/7066779843345514510

出现monkeydev安装问题参考:https://github.com/AloneMonkey/MonkeyDev/issues/266

卸载:

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-uninstall)"

询问过相关大佬后,得知monkeydev在xcode中有模块出来后,可以忽略安装时候的报错信息,原因是因为xcode不断在更新,而monkeydev还是原来的老版本。相关错误可以忽略


7、libimobiledevice、usbmuxd、ideviceinstaller

libimobiledevice

libimobiledevice 又称 libiphone,是一个开源包,一个跨平台的软件库。可以让 Linux 支持连接 iPhone/iPod Touch 等 iOS 设备的协议。它不依赖于使用任何现有的专有库,不需要越狱。类似Android 的 adb 命令。

它允许其他软件轻松访问设备的文件系统,检索有关设备及其内部设备的信息,备份/恢复设备,管理跳板图标,管理已安装的应用程序,检索地址簿/日历/笔记和书签,以及(使用LIGBGOD)同步音乐和视频到设备。

一个与Apple iOS设备进行本地通信的库。

安装方法

  • 使用brew在线安装

brew install libimobiledevice
brew install ideviceinstaller
  • github离线安装

  • clone 代码

  • https://github.com/libimobiledevice/libimobiledevice

  • https://github.com/libimobiledevice/ideviceinstaller

编译代码

$ git clone https://github.com/libimobiledevice/libimobiledevice.git
$ cd libimobiledevice
$ ./autogen.sh
$ make
$ sudo make install
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  • 常用语法

  • 安装卸载ipa包

# 查看当前已连接的设备的UUID
idevice_id -l
# 获取设备信息
ideviceinfo
# 查看系统日志
idevicesyslog
# 截图
idevice screenshot
# 获取设备时间
idevicedate
# 重启设备
idevicediagnostics restart
# 关机
idevicediagnostics restart
# 休眠
idevicediagnostics sleep

usbmuxd

usbmuxd 全称「USB Multiplexing Daemon」,即 USB 多路传输驻留程序。当 Mac/PC 与 iPhone 之间使用 USB 数据线连接时,iTunes 与 iPhone 间的通信交流便是通过 usbmuxd 服务。usbmuxd 通过给定的端口号和 localhost 建立 TCP 连接。

下载网址:https://cgit.sukimashita.com/usbmuxd.git

安装

brew install usbmuxd

参考:https://gist.github.com/Nomeqc/494e197806402c1880169eb72a576e77

ideviceinstaller

前言:ideviceinstaller 是一个命令行工具,主要用于管理iOS设备上应用程序的安装与卸载,以及查看相关信息。 # ipa安装命令

ideviceinstaller官网:https://github.com/libimobiledevice/ideviceinstaller

【查看是否安装】:终端输入 ideviceinstaller

安装 ideviceinstaller

brew install ideviceinstaller

常用命令

# 打印app列表(查看已安装程序)
ideviceinstaller -l
# 卸载程序
ideviceinstaller -U [appId]

idevice installer -i xxx.ipa  # 安装
idevice installer -u [udid] -i [xxx.ipa] # 给指定连接的设备安装应用
idevice installer -U [bundleID]  # 卸载

如果电脑连接了多台设备,查看、安装及卸载程序的命名均需要通过 -o [udid] 参数来指定设备

ideviceinstaller -i [ipa文件] -o [设备udid]
ideviceinstaller -l -o [设备udid]
ideviceinstaller -U [appId] -o

相关命令:

注:bundle_id就是应用包名

获取设备的的UDID
  • idevice_id --list # 显示当前所连接设备的 udid

  • instruments -s devices # 列出所有设备,包括真机、模拟器、mac

  • ideviceinfo 可以在返回的数据中找到 udid

  • idevice_id -l

  • 苹果手机 safari打开网址http://fir.im/udid 就看到了

设置代理

(可以用于转发端口,比如将ssh的端口映射到电脑,这样没有网络也可以ssh登录)

iproxy (该工具会将设备上的端口号映射到电脑上的某一个端口)

iproxy 8200 8100

挂载DeveloperDiskImage

用于调试

ideviceimagemounter

安装某个app
  • ideviceinstaller -i apppath 安装apppath下的app

  • ideviceinstaller -i xxx.ipa //命令安装一个ipa文件到手机上,如果是企业签名的,非越狱机器也可以直接安装了。

  • ideviceinstaller -u [udid] -i [xxx.ipa] # xxx.ipa 为应用在本地的路径

卸载应用
  • ideviceinstaller -u [udid] -U [bundleId] 卸载应用,需要知道此应用的bundleID

  • ideviceinstaller -U <bundleId>

查看设备已安装的应用
  • ideviceinstaller -u [udid] -l # 查看设备安装的第三方应用

  • ideviceinstaller -u [udid] -l -o list_user # 同上,查看设备安装的第三方应用

  • ideviceinstaller -u [udid] -l -o list_system # 查看设备安装的系统应用

  • ideviceinstaller -u [udid] -l -o list_all # 查看设备安装的所有应用

获取设备信息
  • ideviceinfo -u [udid] # 获取设备信息

  • ideviceinfo -u [udid] -k DeviceName # 获取设备名称 同命令 idevicename

  • idevicename # 同上

  • ideviceinfo -u [udid] -k ProductVersion # 获取设备版本 10.3.3

  • ideviceinfo -u [udid] -k ProductType # 获取设备类型 iPhone 8,1

  • ideviceinfo -u [udid] -k ProductName # 获取设备系统名称

其他系统文件信息
  • ideviceinfo # 获取设备所有信息

  • idevicesyslog # 获取设备日志

  • idevicesyslog >> iphone.log &

  • //该命令是将日志导入到iphone.log这个文件,并且是在后台执行。

  • idevicecrashreport -e test # 获取设备 crashlog,test 是文件夹需新建

  • idevicediagnostics # 管理设备状态 - 重启、关机、睡眠等

ios-deploy 常用命令
  • ios-deploy -c # 查看当前链接的设备

  • ios-deploy --[xxx.app] # 安装APP

  • ios-deploy --id [udid] --uninstall_only --bundle_id 包名 # 卸载应用

  • ios-deploy --id [udid] --list_bundle_id # 列出所有应用的包名

  • ios-deploy --id [udid] --exists --bundle_id 包名# 指定设备查看应用是否安装 (如ios-deploy --id 95923223205 --exists --bundle_id com.dlte.666)

  • ios-deploy -e --bundle_id 包名 #不指定设备判断是否安装此包(用于只有一台手机)

列举设备安装的应用
  • ideviceinstaller -l则可以列出手机上所有的用户安装的app

运行某个app

调试程序(需要预先挂载DeveloperImage)

  • idevicedebug run 'APP_BUNDLE_ID'可以直接launch某个app,当然,这个app必须是你通过development证书build到手机上的才行。

获取手机的设备版本(系统版本)
  • Ideviceinfo -k ProductVersion

获取手机的设备名(手机型号)
  • ideviceinfo -k ProductType

截图
  • idevicescreenshot

//如果在使用截图的时候出现报错信息,那么就去把相应版本的DeveloperDiskImage的两个文件复制到libimobiledevice文件下面。

路径:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/对应版本/

录像
  • xrecord --quicktime --list

  • xrecord --quicktime --name="iPhone" --out="/Users/blah/video/iphone.mp4" --force

手机关机
  • idevicediagnostics shutdown # shutdown device

重启手机
  • idevicediagnostics restart # restart device

休眠(熄屏灭屏)
  • idevicediagnostics sleep # 类似于断开adb . (disconnects from host)

获取设备时间
  • idevicedate

参考:https://www.cnblogs.com/chen-xia/articles/14268025.html

1.iPhone默认是使用22端口进行SSH通信,采用的是TCP协议。

2.要想保持端口映射状态,不能关闭第一个终端窗口,如果要执行其他终端命令行,请新开一个终端窗口。

3.不一定非要10010端口,只要不是保留端口就行。

4.localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址。

5.usbmuxd会将Mac本地10010端口的TCP协议数据,通过USB连接转发到iPhone的22端口。

在 Mac 端,是由「/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd」处理,并通过 launchd 启动。其将会在「/var/run/usbmuxd」创建一个 UNIX Domain Socket(UNIX 域套接字),usbmuxd 将监听 USB 接口的 iPhone 连接。当 iPhone 在正常模式下连接,其将会连接到该 iPhone,并将开始转发通过「/var/run/usbmuxd」接收到的请求。

挂载文件系统工具:ifuse

ifuse是一个依赖libimobiledevice库的工具,所以必须首先安装libimobiledevice

brew install osxfuse

brew install ifuse

挂载某应用的整个沙盒目录

ifuse --container [要挂载的应用的bundleID] [挂载点]

如果是越狱的设备,并且配置好了,可以使用下面命令挂载整个iphone文件系统(暂时没试过,还没有开始研究越狱设备)

ifuse --root [挂载点]


学习完善修正中。。。。

ios逆向学习环境安装(一)相关推荐

  1. IOS逆向学习-Tweak

    IOS逆向学习-Tweak 1. theos指令及可能遇到问题 2. thes的实战练习 2.1 将桌面的更新数字去掉 2.2. 给微信发现界面增加两行功能 2.2.1 hook代码语法知识 2.2. ...

  2. android 和ios 混合式开发环境安装

    android 和ios 混合式开发环境安装 1.安装nodejs 官网下载:https://nodejs.org/en/ 下载node-v8.10.0-x64.msi 安装 2.安装ionic和co ...

  3. 深度学习环境安装之显卡驱动程序安装

    深度学习环境安装包括显卡驱动程序安装.CUDA/cudnn安装.TensorFlow2安装和pycharm环境配置与测试四部分,今天我们先讲显卡驱动安装 首先先检查自己的自己 的电脑有没有GPU,如果 ...

  4. 【慕伏白教程】《动手学深度学习》学习环境安装流程

    [慕伏白教程]<动手学深度学习>学习环境安装流程 一.Conda环境的安装 1. 安装Anaconda 二.安装CUDA 1. 下载相应CUDA版本 三.配置虚拟环境 1. 卸载虚拟环境 ...

  5. DL之IDE:深度学习环境安装之CUDA的简介(显卡GPU/驱动/CUDA间的关系)、安装(根据本地电脑的NVIDIA显卡驱动版本去正确匹配CUDA版本)之详细攻略

    DL之IDE:深度学习环境安装之CUDA的简介(显卡GPU/驱动/CUDA间的关系).安装(根据本地电脑的NVIDIA显卡驱动版本去正确匹配CUDA版本)之详细攻略 目录 CUDA的简介 1.显卡GP ...

  6. DL之IDE:深度学习环境安装之NVIDIA驱动程序安装图文教程(根据Anaconda的CUDA版本去安装对应匹配的NVIDIA)之详细攻略

    DL之IDE:深度学习环境安装之NVIDIA驱动程序安装图文教程(根据Anaconda的CUDA版本去安装对应匹配的NVIDIA)之详细攻略 目录 根据Anaconda的CUDA版本去安装对应匹配的N ...

  7. DL之IDE:深度学习环境安装之Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美搭配安装图文教程之详细攻略

    DL之IDE:深度学习环境安装之Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美搭配安装图文教程之详细攻略 导读:网上教程一大把,瞎指挥的不 ...

  8. python学习环境安装_python学习系列----环境的安装

    最近又想捣鼓下Python了,一来也是给自已找点事吧,毕竟做这行不进则退呀:我平时上班是做PHP的.所以其它时候还是想通过多学习提高下自已吧.好了,废话说完了,正题       其实以前也用过Pyth ...

  9. openai的gym baseline spiningup 深度强化学习环境安装 手撸gym环境demo

    按照spiningup我们学习DRL,链接 https://github.com/openai/gym https://github.com/openai/baselines 1. 安装anacond ...

最新文章

  1. 宜信开源|数据库审核软件Themis的规则解析与部署攻略
  2. JavaScript window.document的属性、方法和事件小结
  3. flume ng之组件介绍
  4. Web开发模式【Mode I 和Mode II的介绍、应用案例】
  5. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(10)之素材管理
  6. MYSQL查询优化:show profile
  7. sql两个in并列_SQL窗口函数
  8. HDU 3328 Flipper 栈 模拟
  9. 零基础如何快速入门深度学习?
  10. 关于linux文件系统出现脏数据修复的思路
  11. python手绘图_用Python轻松实现手绘图效果
  12. 怎么修改照片文件的大小?教你一招改变图片大小尺寸
  13. 定义Java中的方法及调用
  14. 文件夹共享失败解决方式
  15. 未来10年35项最值得你期待的技术
  16. 每日总结(2021/12/15)
  17. java socket 读取文件_java中ServerSocket读取文件流不是分行读取
  18. Python列表练习——用户管理
  19. 手机运行慢可以刷机吗_智能手机反应慢怎么处理?【详解】
  20. 遮挡目标检测持续汇总

热门文章

  1. 2021年中国光谱分析仪器市场趋势报告、技术动态创新及2027年市场预测
  2. Flask 蓝图 Blueprint
  3. Mac Ports的安装和卸载
  4. 3、TextBox 控件
  5. unity shader 边缘光,内发光,外发光,轮廓边缘光,轮廓内边缘光,轮廓外边缘光
  6. [OCA]认证考试内容
  7. 搭建IIS文件服务器
  8. 惠普笔记本无法调节亮度解决办法【成功解决记录贴】
  9. 算法笔记:找考试座位号问题
  10. 语义分割各种评价指标实现