vc++ hook 拦截自己进程指定的api函数_【Frida 实战】API查找器和拦截器的组合使用...

本文是 Frida 系列教程的第四篇,讲解 API查找器和拦截器的组合使用,以及替换 implementation 的方式进行 Hook。

第一篇:【Frida 实战】在 iOS 上分析应用

第二篇:【Frida 实战】Hook 大法,拦截器的使用

第三篇:【Frida 实战】如何拦截 sub_xxxx 这种函数

在前面的 Frida 教程中我们讲到了如何使用拦截器(Interceptor)对 Objective-C 方法和 C 函数进行 Hook,这种方式对指定的几个函数进行操作比较方便,但是如果有些情况需要批量 Hook,比如对某一个类的所有方法进行 Hook,或者对某个模块的特定名称的函数进行 Hook,可能我们并不知道准确的名称是什么,只知道大概的关键字,这种情况怎么 Hook 呢?这时就得使用 API查找器(ApiResolver)先把感兴趣函数给找出来,得到地址之后就能 Hook 了。

API查找器支持对 Objective-C 方法和 C 函数的查找,比如我们来写一个脚本,找到 NSFileManager 这个类名下的所有方法。新建一个 ApiResolver,如果查找 Objective-C,ApiResolver 参数中填写 objc,如果是查找 C 函数,ApiResolver 参数中填写 module,然后调用 enumerateMatches 枚举函数,每次枚举到一个函数会调用一次 onMatch,回调参数 match 包含 name 和 address 两个属性,分别代表名称和地址。整个枚举过程完成之后会调用 onComplete,代码如下:

var resolver = new ApiResolver('objc');resolver.enumerateMatches('*[NSFileManager *]', {
       onMatch: function(match) {
          console.log(match['name'] + ":" + match['address']);   },   onComplete: function() {}});

附加 Safari 浏览器并加载脚本,会打印出 NSFileManager 所有的方法。

frida -U -l hook_objc.js "Safari 浏览器"-[NSFileManager dealloc]:0x1e2324034-[NSFileManager setDelegate:]:0x1e23b2744-[NSFileManager delegate]:0x1e2333ab8-[NSFileManager _info]:0x1e2333ae0-[NSFileManager removeItemAtURL:error:]:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值