Frida是什么
我觉得官网已经说得很清楚了。简单的说就是一款动态代码检测工具,可用于各种主流操作系统,这里主要讨论的是动态检测Android系统里面代码运行情况。
Android版的Frida环境的搭建主要分为两个部分,一部分是运行在Android机器上的代理工具 frida - server
,另一部分是Windows系统用Python PIP安装了发指令的工具 frida - CLI
,下面 frida-server我简称为Android端、frida CLI我简称为Windows端。把这两端的环境都部署好后,就能通过Windows向Android发送指令了。
分类如下:
- frida - server (相当于Android系统里面安装了一个代理工具)
- frida - CLI (指在Windows系统用Python PIP安装了发指令的工具)
frida - CLI的其它替代方案:
我这里使用Window系统的Python语言,同理你可以切换成Linux、Mac OS等其他操作系统,只要能安装Python环境即可。
Android端安装步骤
根据CPU架构选择frida-server
Android手机主要是安装一个 frida-server,安装前,但是需要根据不同的CPU架构去选择 frida-server,其实也可以从宏观的层面上看出Frida的核心功能就是监管CPU、内存的操作,现在Android主流的CPU架构分类为 x86 和 arm 架构的,那么怎么区分自己Android手机的CPU架构呢? 跟着我敲一行命令即可:
adb shell getprop ro.product.cpu.abi
CPU架构和位数:
armeabi-v7a -------(32位ARM设备)
arm64-v8a -------(64位ARM设备)
下载地址:https://github.com/frida/frida/releases
地址里面比较多产品,因为Frida比较牛逼,支持的平台众多,你就搜索frida-server-XXX.XXX.XXX-android-x86_64.xz
就好。
我这个是 arm64 架构的,下载好了之后解压,adb push ~ ~
到Android手机就行了。
Android安装frida-server
adb push frida-server /data/local/tmp # adb push 参数1 参数2
adb shell
su
cd data/local/tmp
chmod 777 frida-server
ls -all # 验证是否777
-rwxrwxrwx shell shell 21248332 2019-01-03 17:29 frida-server-12.2.27-android-arm
./frida-server # 必须运行
机器需要root权限,因为Frida要求的权限比较大。注意
尽量使用真机测试,因为一些虚拟机CPU使用混合模式架构,这样就会导致Frida报错无法运行,新手尽量使用真机来避免这个问题,如果实在没有这个条件,那么挑选虚拟机的时候尽量注意一下这个问题即可。
如果程序一直处于运行状态(如下图),不返回shell就是正常的。
Windows端安装步骤
Python PIP安装组件
pip install frida
pip install frida-tools
pip list # 验证一下pip是否安装成功
Windows端验证 frida-server 是否成功
# 设置端口转发
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
# 查看进程
frida-ps -R
# 或
frida-ps -U
能看到打印出来的PID和进程,说明Android、Windows端都已经安装好了。去探索吧,少年!
参考
Android组合Windows环境下Frida的安装步骤的更多相关文章
-
Windows环境下MongoDB的安装与配置
MongoDB是一种高性能的文档型数据库,现介绍一下在Windows环境下MongDB的安装与配置 获取MongoDB 打开官方网站 www.mongodb.org,找到页面右上解的DownLoad链 ...
-
Redis学习——Windows环境下Redis的安装(二)
一.说明 之前介绍了Linux环境下Redis的安装,这次介绍一下Windows环境下Redis的安装,首先要讲的是,Redis官方只支持Linux,还好 Microsoft Open Tech gr ...
-
Windows环境下python的安装与使用
Windows环境下python的安装与使用 一.python如何运行程序 首先说一下python解释器,它是一种让其他程序运行起来的程序.当你编写了一段python程序,python解释器将读取程序 ...
-
python MySQLdb在windows环境下的快速安装
python MySQLdb在windows环境下的快速安装.问题解决方式 使用python访问mysql,需要一系列安装 linux下MySQLdb安装见 Python MySQLdb在Linux下 ...
-
Windows环境下使用.bat安装和卸载服务
一.Windows环境下使用.bat安装和卸载服务 win7环境 例子中“”Valwell.Dms.HttpService.exe“”为服务程序名称 安装服务 %SystemRoot%\Microso ...
-
Android笔记——Windows环境下Android Studio v1.0安装教程
本文主要讲解Windows环境下Android Studio的安装教程,Mac的Android Studio安装与此类似不在赘述,另外友情提示Windows下的SDK与Mac的SDK是通用的,可以直接 ...
-
Redis在windows环境下ThinkPHP的安装和使用
1.Redis概述: 2.Redis在windows环境下的安装: 下载地址:https://github.com/dmajkic/redis/downloads,选取其中一个zip压缩包:
-
Windows环境下 PyQt5 如何安装MySql驱动 (PyQt5连接MYSQL时显示Driver not loaded解决方案)
参考文章: https://blog.csdn.net/qq_38198744/article/details/80261695 前文说过如何在Ubuntu环境下 为PyQt5 安装MySql驱动, ...
-
117、python MySQLdb在windows环境下的快速安装、问题解决方式
使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.NET/wklken/arti ...
随机推荐
-
Kafka 文档引言
原文地址:https://kafka.apache.org/documentation.html#semantics 1.开始 1.1 引言 Kafka是一个分布式,分区队列,冗余备份的消息存储服务. ...
-
枚举类valueOf方法的疑问
枚举类中valueOf方法只有一个参数而Enum类中有两个参数,请问Enum实例类中的valueOf方法是从何处继承而来? 答案:jvm进行编译的时候添加的.
-
转:iOS基于MVC的项目重构总结
转:http://www.cocoachina.com/ios/20160519/16346.html 关于MVC的争论 关于MVC的争论已经有很多,对此我的观点是:对于iOS开发中的绝大部分场景来说 ...
-
CentOS7下源码安装mysql5.6
目录 准备工作 运行环境 确认你的安装版本 下载mysql 安装mysql 准备安装环境 编译和安装 配置mysql 单实例配置 单实例配置方法 添加防火墙 ...
-
解决sublime联网失败,点击package control后没有反应
在*有可能出现这种情况,这是因为国内不支持https访问引起的(再次吐槽万恶的GFW ). 这时只需要"preferences -> package settings -> ...
-
hdoj 3065 病毒侵袭持续中(AC自动机)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3065 思路分析:问题需要模式匹配多个模式串,需要注意的是模式串会包含和重叠,需要对AC自动机的匹配过 ...
-
poj 1061 扩展欧几里德同余方程求解
摘要写在一瞪眼. #include<iostream> using namespace std; long long exgcd(long long a,long long b,long ...
-
ORM映射设计思想
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; usin ...
-
Teradata 终止回滚方法(rcvmanager工具)
1.使用root用户登录数据库节点 ssh root 2.启动database window cnsterm 3.启动rcvmanager start rcvmanager 4.确认utiltiy在哪 ...
-
ADOTable的CancelUpdate和CancelBatch的区别?(100分)
出差*,修改别人的代码,请教CancelUpdate和CancelBatch的区别! 如果希望取消对当前记录所做的任何更改或者放弃新添加的记录,则必须调用CancelUpdate 方法CancelB ...