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差不多,系统在某种程度上限制了管理员账号的权限。

不能修改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 以测试环境变量配置是否成功

编辑~/.bash_profile
改变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
创建工程

在执行$ 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 安装指南

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容