• ios逆向,tweak简洁使用教程


    准备工作:

    • .爱思助手
    • .一台已越狱的iphone,并已安装cydia
    • . 安装Theos,安装教程就忽略了,Theos安装起来比较麻烦,主要是网络原因,这里提供一份绿色版本
      https://download.csdn.net/download/u010775335/86882617

    tweak教程正式开始

    • 咱们先创建一个普通的xcode,demo工程,并且bundlerID设为"com.test.tweak".然后ViewController中添加如下代码:
    #import "ViewController.h"
    @interface ViewController ()
    @end
    @implementation ViewController
    -(void)viewDidAppear:(BOOL)animated{
        [self bigun_test];
    }
    -(void)bigun_test{
        NSLog(@"12");
    }
    @end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行起来,直接输出"12"

    • 接下来,我们通过tweak直接修改bigun_test函数
    • 假设你的thoes目录是"$THOES_HOME"
    • 那么创建tweak工程的代码就是如下了
    终端执行命令
    $THOES_HOME/bin/nic.pl
    
    注意,不得在$THOES_HOME中运行,否则报错
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    选择"iphone/tweak",那个选项,也就是输入”17"

    • OK,tweak工程创建完毕,这里对工程进行一些必要的设置
    • 修改"tweak工程名.plist"文件,里面的bundleId改为"com.test.tweak“
      在这里插入图片描述
    • 打开爱思助手,并连接上iphone,通过爱思助手打开ssh通道
      在这里插入图片描述
    • 回到tweak工程,修改Makefile文件,在文件头部添加上述ssh配置
      如下添加
      “THEOS_DEVICE_IP”,
      “THEOS_DEVICE_PORT”,
      “ARCHS”
      在这里插入图片描述
      Hook代码编写
    • 修改Tweak.x代码,如下:
    #import 
    @interface  ViewController:UIViewController //为了使用self,否则编译不过
    @end
    
    %hook ViewController
    
    -(void)bigun_test{
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"标题" message:@"恭喜hook成功" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *conform = [UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            NSLog(@"点击了确认按钮");
        }];
        [alert addAction:conform];
        [self presentViewController:alert animated:YES completion:nil];
    }
    
    %end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 注意,这里用到了"“,则需要在Makefile中添加对应framework,如下图
      注意格式是"tweak的工程名”+”_FRAMEWORKS"=UIKit
      在这里插入图片描述
      如果不添加framework,则会报类似以下的错误:
    Tweak.x:39:5: error: use of undeclared identifier 'UIAlertView'
    
    • 1

    编译、打包、运行

    • 打开终端,cd到tweak根目录,运行命令
    make clean && make package && make install
    
    • 1

    如无意外,则有以下日志
    在这里插入图片描述
    期间可能要输入两次ssh的密码

    OK~,hook插件已编写及安装完毕,再次运行你的demo工程,你就会发现弹出一个窗口啦!

    以下是常见错误及解决方法:
    执行编译安装时提示以下报错

    ssh: connect to host 192.168.1.102 port 22: Operation timed out
    
    • 1

    解决:
    检查cydia中是否已安装open_ssh

  • 相关阅读:
    [Java]线上监控诊断工具Arathas,入门使用
    C++之特殊类设计
    单元测试-学习笔记
    C_指针基础4
    JavaScript和TypeScript的特点
    图神经网络时间序列预测,神经网络预测未来数据
    MySQL查询成本
    sqoop导出到mysql出错
    二蛋赠书七期:《云原生数据中台:架构、方法论与实践》
    docker常用命令:docker制作镜像过程中常用的命令
  • 原文地址:https://blog.csdn.net/u010775335/article/details/127667574