美文网首页
iOS逆向实操笔记7-Tweak更多使用

iOS逆向实操笔记7-Tweak更多使用

作者: 水煮杰尼龟 | 来源:发表于2020-12-27 10:20 被阅读0次
使用OC文件

在逆向过程中自己可能会做一些工具啥的,用到自己编写好的OC代码

  • 首先创建自己的OC文件夹,比如我简单的写一个 alert的代码
    image.png
    里面只写了一个show的方法
  • Makefile里增加你要加载的file,如下图,除了加载Tweak.x,还加载myfile下的所有的.m
    image.png
这样就可以import使用了
比如上一篇写的基础上再简单加点,在pp虾的登录界面,每次viewDidAppear 都给弹个窗

%hook BDSUserHomeViewController 里,#import "HJAlertView.h",然后hook方法viewDidAppear,增加弹窗。

- (void)viewDidAppear:(_Bool)arg1{
    %orig;
    UIViewController *vc = (UIViewController *)self;
    [HJAlertView showAlert:vc];
}

然后更新到手机上去,效果如下


Dec-20-2020 15-47-20.gif
logify.pl的使用

这个命令能将一个头文件,快速的转换成带打印信息的.x文件

这样我们就不用一个个去hook, 然后加上log,这有什么用呢,这样我们可以追踪一下操作app的过程中具体调用了什么方法。

实操

  • 新建一个文件夹吧,专门存放我们hook的文件,把我们要转换的.h文件拖进来,把以前的Tweak.x也拖进来。
    image.png
  • Makefile 也得改一下了
    image.png
  • hookfile文件夹执行logify.pl命令 。logify.pl BDSUserHomeViewController.h > BDSUserHomeViewController.x,即会生成一个BDSUserHomeViewController.x文件
    image.png
    image.png
  • 这个时候你make package, 是不通过的·一堆报错,需要处理一下。
    image.png
logify生成文件处理
- 删除_weak
- 删除inout
- 删除协议//或者@protocol xx 声明一下
- 替换类名为void, 如XXPerson * 替换为 void * // 或者声明一下@class XXPerson
- 删除 - (void).cxx_destruct { %log; %orig; }
  • 根据make package的报错信息,按上面的方式处理好就行了。

  • 编译成功后,装到手机上,打开控制台,选择自己的手机,打开app,过滤一下app的日志信息。

    image.png
  • 来到这个BDSUserHomeViewController界面,看看控制台。

    image.png
  • 可以看到调用了哪些方法。

  • 比如我们点击登录,发现它调用了- (void)checkInDetailContainerView;这个方法

    image.png
  • 这样我们就可以hook这个方法,假设我不想跳到登录界面了,顺便将上面加的弹窗给移到这个点击时响应。

%hook BDSUserHomeViewController

- (void)checkInDetailContainerView{
    UIViewController *vc = (UIViewController *)self;
    [HJAlertView showAlert:vc];
}

这样点击登录就不会跳到登录界面了,而且还会弹出自己写的弹窗。


Dec-20-2020 16-41-41.gif

end

相关文章

网友评论

      本文标题:iOS逆向实操笔记7-Tweak更多使用

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