iOS逆向工具之Theos(MacOS)介绍

  • 上一篇文章: iOS逆向工具之Cydia(iOS)软件介绍

  • 今天是2020年第二天,我们继续写iOS逆向文章.
    如果你喜欢文章,欢迎留言.

  • 今天我介绍一下Theos工具.

1.Theos

iOS逆向工具之Theos(MacOS)介绍_第1张图片
theos
  • Theos是一个越狱开发工具包,由iOS越狱大牛DHowett开发的.DHowett不再维护后,Adam Demasi接手了Theos项目,并完善了很多功能.

  • theos地址: theos github地址

2.Theos的特点

  • 下载安装简单
  • Logo语法简单
  • 编译发布简单

3.Theos安装

  • 我们看一下如何安装
1.安装前准备
iOS逆向工具之Theos(MacOS)介绍_第2张图片
Homebrew

终端执行这个命令就可以安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安装Xcode

正向iOS开发者,Mac上都安装着Xcode.如果你安装多个版本Xcode,指定其中一版本的Xcode就行.
终端执行命令

sudo xcode-select -s /Applications/Xcode.app
3.我们安装ldid,ldid是专门用来签名iOS可执行文件的工具,用来代替Xcode的codesign.

越狱iPhone下的签名工具(更改授权entitlements),可以为theos开发的程序进程签名 (支持在OS X和iOS上运行)。

我们可以通过终端命令进行安装

brew install ldid fakeroot

-ldid 用于签名
-fakeroot 用于模拟root权限

iOS逆向工具之Theos(MacOS)介绍_第3张图片
brew install ldid fakeroot

安装可能要花费一段时间,耐心等待一下.

注意:
关于ldid签名知识点补充
这里要提一下加密算法:
1. 对称加密算法:
RC4,DES,3DES,AES128,AES356等,加解密双方密钥相同.
2. 非对称加密算法:
RSA,Elgamal等,加解密双方使用密钥对.
3. 哈希算法:

  • MD(16Byte),SHA1(20Byte)等.
  • 任意长度的信息转换成到某一固定长度的信息摘要,主要作用是对数据完整性校验.
  • 具有唯一性,不可逆性

注意
苹果签名:
1. 苹果签名 是苹果官方的私钥签名,公钥验证
2. 以数字签名形式进行签名

注意
数字签名
1. 数字签名是非对称密钥加密技术与数字摘要技术的应用.
2. 对指定信息使用哈希算法,得到一个固定长度的信息摘要.
3. 然后再使用 私钥 对该摘要加密,就得到了数字签名.

注意
数字证书:
1. 数字证书是一个文件,由苹果的Apple Worldwide Developer
Relations Certification Authority(WWDR)证书认证中心进行签名
2. 其主要作用是用来标识身份.

注意
证书文件主要包含两部分内容: 证书信息证书签名
1.证书信息
包含用户的公钥,用户个人信息,证书颁发机构信息,证书有效期等信息
2.证书签名
WWDR将上述证书本身内容,通过哈希算法得到一个固定长度的信息摘要,然后使用自己的私钥对该信息摘要加密生成数字签名.
3.证书验证

  • iOS系统原本就持有WWDR的公钥,系统首先会对证书内容通过指定的哈希算法计算得到一个信息摘要.
  • 使用WWDR的公钥对证书中包含的数字签名解密,从而得到经过WWDR的私钥加密过得信息摘要.
  • 最后对比两个信息摘要,如果内容相同就说明该证书可信.
  • 在验证了证书可信以后,iOS系统就可以获取到证书中包含的开发者公钥,并使用该公钥来判断代码签名的可用性.

注意

  • 我们正向开发中,一般打包过程就是使用开发者私钥对应用进行签名.
  • 开发者的公钥被包含在数字证书里,数字证书又被包含在描述文件.(Provisioning File)中,描述文件在应用被安装的时候会被拷贝到iOS设备中.
  • iOS系统通过证书就能够确定开发者身份,通过从证书中获取到的公钥验证开发者对该公钥对应的私钥签名后的代码,资源文件等有没有被更改破坏.
  • 最终确定应用能否合法在iOS设备上合法运行.

到这里,ldid介绍完成

4.配置dpkg-deb

dpkg:用于管理deb包.
deb是越狱开发安装包的标准格式,dpkg-deb是一个用于操作deb文件的工具,有了这个工具,Theos才能正确地把工程打包成为deb文件.

iOS逆向工具之Theos(MacOS)介绍_第4张图片
dpkg安装

有的朋友会使用这个命令


brew install --from-bottle https://raw.githubusercontent.com/Homebrew/homebrew-core/7a4dabfc1a2acd9f01a1670fde4f0094c4fb6ffa/Formula/dpkg.rb

报错 Error: invalid option: --from-bottle
大概意思是:无效的参数,这个有可能和安装的版本原因.

我多次安装后,把参数去掉了

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/7a4dabfc1a2acd9f01a1670fde4f0094c4fb6ffa/Formula/dpkg.rb
brew pin dpkg

到这里就完成了dpkg的安装.

5.安装Theos

我们在终端使用命令
sudo git clone --recursive https://github.com/theos/theos.git /opt/theos

iOS逆向工具之Theos(MacOS)介绍_第5张图片
theos 安装

我们通过git clone 到/opt/theos目录下.

克隆需要一部分时间,我们需要耐心等待一会.

  • 下载好了,我们看下theos文件
iOS逆向工具之Theos(MacOS)介绍_第6张图片
/opt/theos
  • 我们看下theos的文件
iOS逆向工具之Theos(MacOS)介绍_第7张图片
theos

我们在终端添加/opt/thoes目录的所有者

chown

sudo chown -R $(id -u):$(id -g) /opt/theos

  • 我们在添加theos环境变量
    open ~/.bash_profile
iOS逆向工具之Theos(MacOS)介绍_第8张图片
theos环境变量

source ~/.bash_profile

保存环境变量并生效

thoes到这里安装完成.

4.总结

本篇文章主要介绍了Theos安装前准备.

  • Homebrew
  • Xcode
  • ldid
  • dpkg-deb
  • theos
    等工具安装.
    通过本篇的介绍,你应该会安装theos了.

我们下篇文章会介绍如何是theos,我们会创建tweak demo为大家介绍.
有问题请留言,持续关注.

你可能感兴趣的:(iOS逆向工具之Theos(MacOS)介绍)