iOS逆向工具03-Theos

一.什么是Theos

theos是一个越狱开发工具包,用于帮助我们进行越狱开发

二.如何使用

  1. 如果你的电脑只有一个xcode,运行sudo xcode-select -p
    如果有多个,运行sudo xcode-select -s /Applications/你的xcode的名字/Contents/Developer
  2. 运行sudo git clone --recursive https://github.com/theos/theos.git /opt/theos
  3. 运行brew install ldid
    ldid是专门用来签名iOS可执行文件的工具,用来取代iOS中自带的codesign.
  4. 查看效果


    theos结构

三. 工程演示

  1. 运行/opt/theos/bin/nic.pl

如果报Cowardly refusing to make a project inside $THEOS (/opt/theos/),那么请到其他目录下新建项目,不要在/opt/theos目录下建立.

图片.png
  1. Choose a Template (required):
    我们要做的是tweak操作,所以输入13,回车
  2. Project Name (required):
    输入项目的名称,自己起一个好记得,例如 tweakDemo
  3. Package Name [com.yourcompany.tweakdemo]:
    输入包名,我瞎写的 com.love.you
  4. Author/Maintainer Name [aaa]:
    输入作者名, yk
  5. [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:
    注意:这里输入的是你要tweak的app的bundle identifier,一定不能写错,因为theos是根据bundle identifier来往mach-o文件注入你写的动态库的.
  6. [iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]:
    直接敲回车
  7. 完成上述操作,终端会显示如下内容
    Instantiating iphone/tweak in tweakdemo/...
    Done.

四.hook说明

  • 上面的工作主要是创建hook的工程,下面开始真正的开始hook代码.
  • 将创建的工程拖到sublime中,可以编辑下面4个文件


control: 记录一些工程信息
Makefile:打包的一些设置
Tweak.x: 写hook的代码
tweakWeChat.plist: 过滤文件和一些配置信息

五.运行

  1. mac运行sh_sshUSB.sh
  2. Makefile中添加代码
export THEOS_DEVICE_IP = 127.0.0.1
export THEOS_DEVICE_PORT = 2222

Makefile中替换代码(当然你也可以学习网上的那种配置环境变量,不过比较麻烦....)

#include $(THEOS)/makefiles/common.mk
include /opt/theos/makefiles/common.mk

#include $(THEOS_MAKE_PATH)/tweak.mk
include /opt/theos/makefiles/tweak.mk
  1. 在Tweak.x中编写要hook的代码
    MicroMessengerAppDelegate这个类随便找的,主要是看hook成功与否.
%hook MicroMessengerAppDelegate
-(_Bool)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2
{
    UIAlertView *alertView = [[UIAlertView alloc]init];
    alertView.delegate = self;
    alertView.title = @"hook成功";
    [alertView addButtonWithTitle:@"取消"];
    [[UIApplication sharedApplication].keyWindow addSubview:alertView];

    [alertView show];

    return %orig;
}
%end
  1. mac运行make clean && make package && make install安装hook编写的动态库
  2. 等待重启完就能看见自己写的hook了.

六.效果图

图片.png

你可能感兴趣的:(iOS逆向工具03-Theos)