iOS逆向工程:OSX工具集的安装配置(一)

本人刚刚接触逆向工程,在安装各种工具时遇到了各种问题,现在我把这些工具的安装配置整理汇总,希望能解决大家遇到的问题,如果以下内容有错误的地方,还望大家指正.

一.class-dump的安装

class-dump:导出App的头文件.
class-dump的下载地址:http://stevenygard.com/projects/class-dump/
按照书上的操作将dmg文件里的class-dump复制到"usr/bin"下时发现无法实现,并且bin文件夹的权限也修改不了。于是网上搜了一下,原因是 OSX10.11的一个新特性 Rootless,也叫System Integrity Protection(SIP-系统集成保护)和SELinux差不多,系统在某种程度上限制了管理员账号的权限。

iOS逆向工程:OSX工具集的安装配置(一)_第1张图片
不能修改bin文件夹权限.png

解决办法
方法一:改变 class-dump 的环境变量

1.首先在主目录下新建一个目录:
$ mkdir ~/bin
2.然后将class-dump文件移动到~/bin目录下(或者直接复制过去):
$ mv class-dump ~/bin
3.接着修改class-dump文件的操作权限:
$ chmod +x ~/bin/class-dump
4.编辑 ~/.bash_profile 文件
(1)使用vi命令打开文件
$ vi ~/.bash_profile
(2)按Esc键,然后再按 i , 进入编辑模式
(3)在文件的最上头写入
$ export PATH=$HOME/bin/:$PATH
(4)按Esc键, 再按 冒号键:,然后再输入wq (意思是保存并退出)
(5)使修改的bash_profile生效:
$ source ~/.bash_profile
5.在终端上输入 class-dump 以测试环境变量配置是否成功

iOS逆向工程:OSX工具集的安装配置(一)_第2张图片
编辑~/.bash_profile
iOS逆向工程:OSX工具集的安装配置(一)_第3张图片
改变class-dump环境变量操作流程

方法二:关闭rootless内核保护(不过这就多了一份被恶意软件攻击的潜在威胁)
解决方法如下:

1.重启mac
2.在启动时按下command+r直到出现苹果logo
3.这时有可能要你选择语言
4.选择工具(Utilities)打开终端(terminal)执行如下命令
csrutil disable; reboot
5.再次启动后重新执行移动命令
6.要重新恢复,只需将disable改为enable。

参考资料:
iOS应用安全:class-dump的安装和使用
class-dump的安装

二.Theos的安装

Theos:越狱开发工具包一款跨平台的独立于 Xcode 的用于管理,开发,部署 iOS 应用的开发工具,其主要用于越狱 iOS 平台的扩展(tweaks) 开发。
1.如果没有Xcode需要先去安装,如果有多个Xcode,需要指定一个活动的Xcode.假如安装了3个Xcode,并将它们分别命名为Xcode1.app, Xcode2.app, Xcode3.app.输入如下命令:

$ sudo xcode-select -s /Applications/Xcode3.app/Contents/Developer

2.选择 Theos 的安装路径,建议安装在 /opt/theos 路径下,在终端中输入如下命令,创建临时的环境变量:

$ export THEOS=/opt/theos

3.下载最新的版本的 Theos

svn 方式:

$ svn co http://svn.howett.net/svn/theos/trunk $THEOS

git 方式:

$ git clone --recursive git://github.com/DHowett/theos.git $THEOS

ps:一定要加上 --recursive 递归选项,这样才能把 Theos 依赖的模块都拉取下来

问题: 按照上述命令之后,绝大多数朋友会出现如下提示

$ git:could not create leading directories of '/opt/theos': Permission denied
$ svn: Can’t make directory ‘/opt/theos’: Permission denied

这是因为/opt/theos这个路径需要管理员授权才有写权限。在命令名前面加sudo即可,重新输入后如下:

$ sudo git clone --recursive git://github.com/DHowett/theos.git $THEOS

ps:据说修改版本的thoes更好

$ git clone git://github.com/rpetrich/theos.git $THEOS

4.添加 Theos 环境变量到 ~/.bash_profile 中,bash 在启动时会加载该脚本,在编写 Makefile 文件时便可以直接使用 $THEOS 环境变量。

(1)使用vi命令打开文件
$ vi ~/.bash_profile
(2)按Esc键,然后再按 i , 进入编辑模式
(3)在文件中写入
$ export THEOS=/opt/theos
$ export PATH=$THEOS/bin:$PATH
//后面可以不配置
$ export SDKVERSION=10.1 //iOSSDK版本
$ export THEOS_DEVICE_IP=127.0.0.1 THEOS_DEVICE_PORT=22
(4)按Esc键, 再按 冒号键:,然后再输入wq (意思是保存并退出)
(5)使修改的bash_profile生效
$ source ~/.bash_profile

如果你使用的其他的终端程序,如zsh,ksh,则启动终端并不会加载 ~/.bash_profile 脚本,环境变量不会生效,应该将配置环境变量的脚本写在对应终端加载的文件中,详细请参考how-to-permanently-set-environmental-variables

5.安装ldid和dpkg-deb
ldid:一款二进制授权管理软件,可以对越狱应用进行SHA1运算生成授权,让软件包可以在iPhone上执行。
deb:越狱开发安装包的标准格式,dpkg-deb是一个用于操作deb文件的工具,这样Theos才能正确地把工程打包成为deb文件.
Homebrew是一款Mac上基于Ruby的包管理器。我们使用Homebrew来安装它们。使用如下命令:

$ brew install dpkg ldid

6.配置CydiaSubStrate
旧版的安装方法中,有这么一句话:sudo /opt/theos/bin/bootstrap.sh substrate,新版中已经去除了bootstrap引导,直接跳过即可。

7.验证Theos是否安装成功

$ nic pl
iOS逆向工程:OSX工具集的安装配置(一)_第4张图片
创建工程

在执行$ make package命令时出现如下问题
$ dpkg-deb: error: obsolete compression type 'lzma'; use xz instead

解决方法一:

$ brew remove dpkg  
$ HOMEBREW_NO_AUTO_UPDATE=1 brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/7a4dabfc1a2acd9f01a1670fde4f0094c4fb6ffa/Formula/dpkg.rb
$ brew pin dpkg  

解决方法二:
因为deb.mk文件有问题,不要自己去修改,通过这个地址进行下载,替换掉本地的deb.mk --下载地址

参考资料:
Theos 安装指南

你可能感兴趣的:(iOS逆向工程:OSX工具集的安装配置(一))