学完了基本知识以及配置环境,接下来就开始实战了,我也在这里记录下本次喜马拉雅去除广告的实践步骤,大家有兴趣可以参考下。
1、查壳
步骤:
(1)查看应用是否加壳(加壳应用无法导出头文件);
MAC连接登录手机后,使用pa -A查看文件路径:
(2)找到目标文件目录并使用爱思助手或者IfunBox找到目标可执行文件:
将该可执行文件拽到MAC上。
(3)在电脑环境下使用命令行otool -l 可执行文件路径 | grep crypt查壳:
其中,字段cryptid值为1表示已加壳,值为0为为加壳。
2、脱壳
(1)确定应用加壳后就要进行脱壳了,这里使用脱壳工具dumpdecrypted:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 文件路径(通过ps-A查看)
脱壳操作需要在MAC连接手机环境中执行(刚学时很容易犯错,大家注意!)
如图,脱壳成功:
接下来我们要使用到爱思助手或者IfunBox找到脱壳后的app,这里注意的是,使用该脱壳方法并不会提示脱壳文件生成的路径,它一般会在var/root文件夹下,如图:
后缀名为.decrypted的即为脱壳后的文件。
(2)使用class-dump导出头文件
class-dump -H 脱壳文件路径 -o tingHeaders
成功脱壳效果如下:
做到这先不要开心,才成功一点点,后面的坑在我第一次操作的时候是一个比一个大,一个问题百度谷歌了一下午才解决。
3、开始逆向
(1)首先需要建立nic文件命令:nic.pl
*这里由于个人环境配置问题,每次使用该命令前需要source .bash_profile允许环境。
建立完成后会在 ~中生成tingHeaders文件夹,将它拖至桌面并使用sublime Text打开后会出现如下几个文件:
打开Makefile在第一行添加THEOS_DEVICE_IP = 192.168.11.208 (手机IP地址,这一行很重要!!!浪费了我快一天的时间!!!)
接下来打开Tweak.x文件:
红书框框中即为后续要hook的类名,代码中间体则是重构函数的方法,具体使用操作后续会更新。。。
4、安装
在终端中进入项目文件路径,make进行编译执行:
编译结束后举行打包:make package
最后安装到手机上就完美结束一次逆向工程了:make install
完结。