美文网首页
iOS逆向工具03-Theos

iOS逆向工具03-Theos

作者: 李永开 | 来源:发表于2019-04-03 20:51 被阅读0次

    一.什么是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

          本文链接:https://www.haomeiwen.com/subject/jkjtiqtx.html