逆向学习

Tweak 实现原理

2021-06-29  本文已影响0人  风雨彩虹_123

逆向可以使我们更加深入地了解APP运行原理,是怎样编译、链接、注入到手机中运行。Theos是提供我们开发应用插件的越狱开发工具包,使用它可以创建Tweak项目,动态Hook第三方程序。

逆向工程

  1. 使用nic.pl 命令创建项目;

2.选择项目类型,此处选择tweak类型;

3.输入项目名称;

4.输入项目包名,注意不能带有特殊字符或空格;

5.输入作者的名字;

6.需要Hook 程序的BundleID;

项目目录

1.control 文件记录了deb包管理系统所需的基本信息;

2.plist Hook项目的Bundle Identifier;

3.Tweak.xm 编写需要修改的代码;

4.Makefile 工程的配置信息;

tweak 的原理

  1. make 编译Tweak代码为动态库(*.dylib)和生成plist文件;

2.make package 将dylid和plist打包为deb文件; (该命令包含make 命令功能,所以可以省略make指令)

3.make install 将deb文件传送到手机上(使用的是SSH机制),通过Cydia安装deb;

上面三个命令,可以将我们编写的插件打包成deb的包上传到手机,在/Libray/MobileSubstrate/DynamicLibraries 文件夹中生成动态库和plist文件。此时万事俱备只欠东风,当我们打开APP时,Cydia Substrate(Cydia已自动安装的插件)会让App去加载对应的dylib
修改App内存中的代码逻辑,去执行dylib中函数代码,这是我们就可以看见修改的代码,由此可见tweak并不会对App原来的可执行文件进行修改,仅仅是修改了内存中的代码逻辑。使用iFunBox将/Library/MobileSubstrate/DynamicLibraries 中对应的dylib和plist删掉即可实现插件的卸载,使应用恢复到原有功能。

上一篇 下一篇

猜你喜欢

热点阅读