frida是一个轻量级别的hook框架。
frida由两部分组成:一部分是运行在系统上的交互工具frida CLI,另一部分是运行在目标机器上的代码注入工具frida-server。
推荐使用python3来安装frida。
 
firda安装:
 
windows上安装frida
使用pip3安装
pip3 install frida-tools # 或使用国内源 pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装过程遇到Running setup.py bdist_wheel for frida ...\ 会卡住,静候一阵子会好的。。。
 
windows的frida目前只支持python2.7和python3.7
 
也可以从Frida的GitHub 版本页面中获取其他二进制文件。
 
linux上安装firda
pip3 install frida-tools # 或使用国内源 pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/
 
顺利安装上后,就可以使用以下命令:
frida frida-kill frida-ps frida-discover frida-ls-devices frida-trace
 
0x03 frida-server
注意一点:frida-server版本要和frida版本一致。
 
源码编译安装
git clone git://github.com/frida/frida.git cd frida make
 
测试是否安装成功
1.开一个notepad.exe
2.输入如下测试代码
import frida
 
def on_message(message, data):
print("[on_message] message:", message, "data:", data)
 
session = frida.attach("notepad.exe")
 
script = session.create_script("""
rpc.exports.enumerateModules = function () {
return Process.enumerateModules();
};
""")
script.on("message", on_message)
script.load()
 
print([m["name"] for m in script.exports.enumerate_modules()])
 
测试成功:
 
查看 frida 版本号
frida --version 12.9.7
 
frida 共有6个工具:
frida frida-kill frida-ps frida-discover frida-ls-devices frida-trace
 
服务端配置
https://github.com/frida/frida/releases下载对应平台的服务端
然后解压,移动到Android设备
adb devices
 
adb push frida-server-12.9.7-android-arm /data/local/tmp/ adb shell cd /data/local/tmp/ chmod 777 frida-server-12.9.7-android-arm
 
然后启动运行,转发端口
./frida-server-12.9.7-android-arm adb forward tcp:27042 tcp:27042
这个时候就设置好了
 
基础运行
  • 查看连接到的设备
frida-ls-devices
  • 查看设备上的进程信息
frida-ps -U
 
PS
如果出现“frida.ServerNotRunningError: unable to connect to remote frida-server”的错误,试试之前的端口转发adb forward tcp:27042 tcp:27042
 
frida常用命令
frida-ps -U 查看usb设备进程列表
frida-ps -R 远程frida-server 进程列表
frida-ps -Ua 运行中APP 应用列表(系统app/用户app)
frida-ps -Uai 所有已安装的App 应用列表(系统app/用户app)
 
执行frida -U -f com.xxx.xxx 进行连接,选择一个进程,等待一段时间则进入该应用
frida -U -f com.android.browser
 
安装apk
adb install Termux.apk
 
 
下载最新adb(platform-tools)
下载:https://developer.android.com/studio/releases/platform-tools
 
ADB和Fastboot for Windows
 
ADB和Fastboot for Mac
 
ADB和Fastboot for Linux
 

firda安装和使用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. storm-redis 详解

    多的不说,先来代码分析,再贴我自己写的代码.如果代码有错误,求更正.. 导入两个关键包,其他项目需要的包,大家自己导入了,我pom下的包太多,不好一下扔上来. <dependency> & ...

  2. 排序算法的总结——Java实现

    前言 简单归纳一下最近学习的排序算法,如果有什么错误的地方还请大家指教. 本文介绍了七种经典排序算法,包括冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序以及堆排序,并且讨论了各种算法的进一 ...

  3. 去重函数unique,sort,erase的应用

    std::unique 一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重.即"删除"序列中所有相邻的重复元素(只保留一个).此处的删除,并不 是真的删除,而是 ...

  4. 【Python】利用python自动发送邮件

    前言 在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子. 因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的 ...

  5. Oracle 中同义词使用

    一.数据库对象: 模式对象: 数据库对象是逻辑结构的集合,最基本的数据库对象是表; 其他对象包括:create增.drop删.改alter 同义词.序列.视图.索引 1.同义词: ①. 现有对象的一个 ...

  6. NO.1 MSP-ESP432P4111开箱

    本人准备2020TI杯模拟电子邀请赛,预计参赛可能会使用TI平台,故从某宝购置一块MSP-ESP432P4111 LaunchPad为参赛做准备.TI官网40美刀,但我只能找国内二道贩子买,有点小贵& ...

  7. springboot系列——重试机制原理和应用,还有比这个讲的更好的吗(附完整源码)

    1. 理解重试机制 2. 总结重试机制使用场景 3. spring-retry重试组件 4. 手写一个基于注解的重试组件 5. 重试机制下会出现的问题 6. 模板方法设计模式实现异步重试机制 如果有, ...

  8. 同步锁Lock & 生产者和消费者案例

    显示锁 Lock ①在 Java 5.0 之前,协调共享对象的访问时可以使用的机 制只有 synchronized 和 volatile . Java 5.0 后增加了一些 新的机制,但并不是一种替代 ...

  9. 【书签】连续型特征的归一化和离散特征的one-hot编码

    1. 连续型特征的常用的归一化方法.离散型特征one-hot编码的意义 2. 度量特征之间的相关性:余弦相似度和皮尔逊相关系数

  10. java方式实现堆排序

    一.堆排序和堆相关概念描述 堆排序是指利用堆这种数据结构所设计的一种排序算法.堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子结点的值总是小于(或者大于)它的父节点,若子结点的值总是小于它的父节 ...