美文网首页
【Toki从零学iOS逆向】七、向App中添加挂钩代码

【Toki从零学iOS逆向】七、向App中添加挂钩代码

作者: TokiHunter | 来源:发表于2022-11-24 17:34 被阅读0次

目录

运行环境

2022年9月
MBP M1 macOS Monterey 12.4
iPhone 8 iOS 14.2
Human Proficient in iOS & Cycript development

控台环境

环境 提示符
#mac $ command
#iPhone Toki-iPhone: root# command
#cycript cy# command

一、创建挂钩项目

本期内容依然是以前几期的受害者TKVictim为目标,所以挂钩命名为 TKVictimHook。

1. 新建iOS项目 TKVictimHookDemo

XCode->File->New->Project...

2. 实现Hook代码

通过Swizzle技巧替换目标函数

//CodedLock+Hook.h

@interface CodedLock (Hook)

@end

//CodedLock+Hook.m

#import <objc/runtime.h>

@implementation NSObject (Hook)

+ (void)load {
    Class cls = NSClassFromString(@"CodedLock");
    Method originalMethod = class_getClassMethod(cls, NSSelectorFromString(@"unlock:"));
    Method newMethod = class_getClassMethod(cls, NSSelectorFromString(@"unlock_hook:"));
    method_exchangeImplementations(originalMethod, newMethod);
}

+ (BOOL)unlock_hook:(NSInteger)code {
    return YES;
}

@end

3. 构建Hook.framework

执行build命令

$ xcodebuild -project TKVictimHook.xcodeproj -target TKVictimHook

执行后会在当前目录生成build文件夹,Framework路径为 build/Release-iphoneos/TKVictimHook.framework

4. 重签名Hook.framework

framework和app的重签名方式一样,把之前用的embedded.mobileprovision文件复制到framework中,然后执行签名命令

$ codesign --continue -fs 1234567890QWERTYUIOPASDFGHJKLZXCVBNM --entitlements embedded/entitlements.plist Hook.framework

5. 安装yololib

yololib源码地址 https://github.com/KJCracks/yololib

前往项目根目录,编译yololib项目

$ xcodebuild -project yololib.xcodeproj -target yololib

yololib项目编译后可以在build/Release/yololib路径找到可执行文件

6. 注入Hook.framework

  1. 进入 app 目录
  2. 将Hook.framework添加到根目录的Frameworks目录下,如果Frameworks不存在就创建一个
  3. 执行yololib注入——由于yololib代码限制,注入必须在app根目录下执行(懒的自己写了,先凑合用)
yololib TKVictim ./Frameworks/TKVictimHook.framework/TKVictimHook

7. 对app重签名

请参考前文 【Toki从零学iOS逆向】六、App重签名

8. 安装、测试

把装好挂钩的app安装到手机,执行TKVictim。

现在只需点击一下即可解锁。

挂钩添加成功!

相关文章

网友评论

      本文标题:【Toki从零学iOS逆向】七、向App中添加挂钩代码

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