赞
踩
免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。
一、frida简介frida是一款基于python + java 的hook框架,可运行在androidioslinuxwinosx等各平台,主要使用动态二进制插桩技术。本期“安仔课堂”,ISEC实验室为大家详解frida,认真读完这篇文章会让你在逆向工作中效率成倍提升哦!1、插桩技术插桩技术是指将额外的代码注入程序中以收集运行时的信息,可分为两种:(1)源代码插桩[Source Code Instrumentation(SCI)]:额外代码注入到程序源代码中。
(2)二进制插桩(Binary Instrumentation):额外代码注入到二进制可执行文件中。
●静态二进制插桩[Static Binary Instrumentation(SBI)]:在程序执行前插入额外的代码和数据,生成一个永久改变的可执行文件。
●动态二进制插桩[Dynamic Binary Instrumentation(DBI)]:在程序运行时实时地插入额外代码和数据,对可执行文件没有任何永久改变。2、你能用DBI做些什么呢(1)访问进程的内存
(2)在应用程序运行时覆盖一些功能
(3)从导入的类中调用函数
(4)在堆上查找对象实例并使用这些对象实例
(5)Hook,跟踪和拦截函数等等二、frida的安装今天我们用到的frida框架分为两部分:一部分是运行在系统上的交互工具frida CLI; 另一部分是运行在目标机器上的代码注入工具 frida-server。1、frida CLI环境要求:
●系统环境 - Windows, macOS, or GNU/Linux
●Python – 最新的3.x版本
通过 pip 安装frida
图1
说明:
(1) 通过pip安装的frida是可以跟python绑定的; 另外frida现在也已经有了跟nodeJs绑定的版本, 因此也可以直接通过 npm 进行安装。
(2) frida CLI是安装的frida的其中一个工具,也是最常用的一个工具。2、frida serverfrida-server需要我们单独下载,在 frida项目的github上可以直接下载对应系统已经编译好的frida server
图2
我们需要下载的文件名的格式是: frida-server-(version)-(platform)-(cpu).xz
我试验的手机是nexus6p, cpu为arm64
所以我需要下载的是: frida-server-11.0.13-android-x86_64.xz;注意, frida-server 的版本一定要跟 frida CLI的版本一致。
将下载后的压缩包解压得到frida-server, 然后将该文件推送到Android设备上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。