前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Frida框架在Fuzzing中的应用

Frida框架在Fuzzing中的应用

作者头像
泉哥
发布2019-12-15 19:56:31
1.7K0
发布2019-12-15 19:56:31
举报
文章被收录于专栏:漏洞战争

由于Frida(https://frida.re)动态插桩框架的跨平台、简单易用,现在已经被广泛应用于安全领域。相比Xposed而言,虽不能更底层地去Hook系统进程,但它可以免启动,应对App的hook完全够用,更关键的是,它完全可以用JavaScript来写代码,免去编译的烦恼,调试也方便。

之前在工作中,也就用Frida去Hook Android与iOS应用来做安全测试,效果挺好的,开发起来也挺高效的。本文主要围绕Fuzzing领域,来分析和记录最近一些使用Frida的Fuzzer。

定制型Fuzzer

Frida来Fuzzing APP的方法,首先推荐Project Zero大神写的Adventures in Video Conferencing系列博文,详细介绍了Hook WhatApps和iMessage的输入数据处理函数并进行Fuzzing的方法,同时也开源了Hook iMessage的工具:https://github.com/googleprojectzero/iOS-messaging-tools/tree/master/iMessage,提供dump和发送消息的功能,自己在额外构造变异数据去Fuzzing。

这种方式特别适用于拥有私有的定制协议或数据格式的APP Fuzzing,只是需要花时间去逆向分析程序的输入数据解析流程,找到关键的处理函数。

通用型Fuzzer

最近又看到两款使用Frida的Fuzzer,出自同一人之手,用PythonJS写的,代码量不多:

  1. frida-js-afl-instr(https://github.com/andreafioraldi/frida-js-afl-instr):打通AFL++Frida实现内存Fuzzing的工具,仅限Linux平台
  2. frida-qbdi-fuzzer(https://github.com/andreafioraldi/frida-qbdi-fuzzer):基于FridaQBDI的Android Fuzzer,借鉴AFL的代码覆盖引导思路,实现Android平台下闭源程序的覆盖引导Fuzzing。

下面直接画时序图来看它的原理,就不贴源码分析了:

frida-js-afl-instr原理图
frida-qbdi-fuzzer原理图

总结

用Frida来实现闭源程序的代码覆盖引导,代码量很少,以Python和JS就可以快速开发起来,但涉及到python等进程的启动,肯定没有纯C/C++的代码运行速度快,但对于Fuzzing,一般还是够用的,还是值得学习和使用的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 漏洞战争 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定制型Fuzzer
  • 通用型Fuzzer
    • frida-js-afl-instr原理图
      • frida-qbdi-fuzzer原理图
      • 总结
      相关产品与服务
      手游安全测试
      手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档