通过theos提供的logify来为类的所有方法添加追踪日志

1.简介

###logify是THEOS自带的为代码添加Log的工具,可以使用该工具给指定的类添加Log代码并且生成一个新的Tweak.xm文件

2.用法

2.1 准备工作

2.1.1 安装Theos

首先需要安装Theos,安装完成之后会默认安装此工具。

2.1.2 将APP脱壳,有两种方式可以获得脱壳的APP

2.1.2.1 无越狱机

通过PP助手去越狱市场下载脱壳的ipa,有时下载下来的也不一定是脱壳后的,你可以通过在终端执行以下命令

1
otool -l target.app/target | grep crypt

如果输出

1
2
3
cryptoff 16384
cryptsize 58753024
cryptid 0 //0 代表已经砸壳,1代表未砸壳

2.1.2.2 有越狱机

你需要一台越狱机器,安装完整版之后通过工具来脱壳,这个时候你也有两个方法获得脱壳应用。方法一:你可以使用dumpdecrypted工具来砸壳。方式二:你也可以使用庆总开源的工具frida-iOS-dump一条命令行进行砸壳。

2.1.3 class-dump 出头文件

通过以上的方式得到砸壳后的应用之后,需要利用clas-dump工具dump出头文件。具体的用法如下

1
class-dump -s -S -H target.app/target -o /path/to/save/header

2.1.4 使用logify工具生成Tweak.xm文件

该文件里面会hook该头文件对应的类,并且会在代码里面加上Log打印
用法如下:

1
logify.pl HookHeader.h的全路径 >Tweak.xm

如果要跟踪多个头文件,则继续转换:

1
logify.pl 其它头文件 >> Tweak.xm

注意中间是 >>

2.1.5 使用nic.pl命令来生成Theos工程,选择Teak工具。

2.1.6 创建完Tweak工程之后,将在2.1.4中生成的Tweak.xm替换掉工程中的Teak.xm.不过此时还需要对该文件做一些修改

a.去掉.cxx_destruct 方法

b.将HBLogDebug 改为NSLog

然后修改makefile文件,在最上面那一行增加
THEOS_DEVICE_IP = 你的设备的IP

2.1.7

使用一下make package install 生成deb包,并且安装到越狱设备上。

2.1.8 运行目标APP,观察日志。

有两种方法可以观察日志,第一种是通过xcode->window->Device and simulators->view device logs 。
第二种是通过idevicesyslog -u udid 来查看特定设备的日志。这种方式需要安装libimobiledevice

-------评论系统采用disqus,如果看不到需要翻墙-------------