【iOS逆向】theos安装、环境配置、和hook简单使用
安装theos
已安装过brew
1、安装ldid
![](https://img.haomeiwen.com/i1396632/8dfbf7ac07584684.png)
2、下载theos(直接下载可能不全)
![](https://img.haomeiwen.com/i1396632/64140f2d326b9d15.png)
通过gitclone指令下载
![](https://img.haomeiwen.com/i1396632/c079f51222fd6e94.png)
recursive表示递归
$THEOS代表下载的路径
因为我在dumpdecrypted-master中执行的命令,所以theos存储在dumpdecrypted-master中,那么
使用的话,也是在这个文件夹中操作,所以最好放在一个系统文件夹中(比如usr)。我已转移到~(home)文件夹中
![](https://img.haomeiwen.com/i1396632/14ff3eac5407dfeb.png)
配置PATH环境变量(方便在任意地方引用theos中的命令)
![](https://img.haomeiwen.com/i1396632/c198c00b867e363c.png)
在bash_profile中编辑
![](https://img.haomeiwen.com/i1396632/b781d47dbf85b17c.png)
进入编辑
![](https://img.haomeiwen.com/i1396632/416170da29383bd2.png)
一般修改后执行一遍source命令使得环境变量生效
![](https://img.haomeiwen.com/i1396632/dfffe5035d5e59b9.png)
使用
切换到桌面
nic.pl列出创建类型的项目
![](https://img.haomeiwen.com/i1396632/3cc6e96bc3f19002.png)
原正版包ID查看方法
![](https://img.haomeiwen.com/i1396632/10150fe76122a6e8.png)
最后得到
![](https://img.haomeiwen.com/i1396632/5bbc4abb7bea84d6.png)
看端口
![](https://img.haomeiwen.com/i1396632/e3d0e985d9da2c15.png)
![](https://img.haomeiwen.com/i1396632/ae290fd27ad1e112.png)
添加iPad的地址和端口
![](https://img.haomeiwen.com/i1396632/8051aab43c8f3f39.png)
查找要hook的App功能的类名
![](https://img.haomeiwen.com/i1396632/eb065466a5fe7bba.png)
通过DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib脱壳得到
![](https://img.haomeiwen.com/i1396632/a0ec69459e6791dd.png)
![](https://img.haomeiwen.com/i1396632/36f992f0d4a5cf3c.png)
去掉后缀名
再通过class-dump得到的头文件
![](https://img.haomeiwen.com/i1396632/95e86d29a47f259a.png)
![](https://img.haomeiwen.com/i1396632/6c173ef488b8f8f2.png)
文件夹拖入sublime通过command+p查找类名
查看要hook的方法
![](https://img.haomeiwen.com/i1396632/e9e26230b71ed1d7.png)
实现hook方法
![](https://img.haomeiwen.com/i1396632/0c7d6420f9f3663e.png)
在生成的文件夹中使用make命令编译
![](https://img.haomeiwen.com/i1396632/37a54d8f575a5dff.png)
如果报错
bogon:letweakting Lin$ make
Makefile:5: /opt/theos/makefiles/common.mk: No such file or directory
Makefile:10: /tweak.mk: No such file or directory
make: *** No rule to make target `/tweak.mk'. Stop.
则在Makefile中添加如下路径
![](https://img.haomeiwen.com/i1396632/d81234bd76e681fe.png)
编译完成
![](https://img.haomeiwen.com/i1396632/8c2d328d76e5a277.png)
然后打包
注释掉theos源码theos/vendor/dm.pl/dm.pl文件中的
![](https://img.haomeiwen.com/i1396632/eca2746885c93b80.png)
修改theos/makefiles/package/deb.mk中第6行的lzma改为gzip
![](https://img.haomeiwen.com/i1396632/14367fa39da896cb.png)
重新make package
得到
![](https://img.haomeiwen.com/i1396632/a1e0d5b295a9a8d1.png)
如果在make成功之后还想make 发现报了Nothing to be done for `internal-library-compile’错误
那就把你刚才创建出来的obj删掉和packages删掉 , 然后显示隐藏文件, 你就会发现和obj同一个目录有一个.theos , 吧.theos里面的东西删掉就好了
![](https://img.haomeiwen.com/i1396632/8fb0eb00149719b0.png)
最后安装报错
![](https://img.haomeiwen.com/i1396632/22a97609204b9481.png)
需要作端口映射[【iOS逆向】usbmuxd的安装和使用 关联sh脚本]https://www.jianshu.com/p/05dec177702d
最后安装成功
![](https://img.haomeiwen.com/i1396632/5eaaab75b001b612.png)
iPad会自动重启。
再次打开已经没有XMSoundPatchImageView了
![](https://img.haomeiwen.com/i1396632/655b6f509156c45c.png)