Ubuntu22.04LTS编译Frida历史版本,环境配制及细节调整

经常使用Frida的朋友们可能会遇到Frida的各种问题需要自定义的,而这时候Frida的本地编译就显得很重要了。

最近一位朋友发现使用Frida14/15/16版的server只能连拉一定数量的设备,超过了frida-device-manager便不能连接设备。

实现没有办法,我只好去修改源码,然后自己搭建编译环境,然后就有了这次的编译Frida。

一、系统

OS: Ubuntu22.04LTS

二、相关资源

参考了别人编译的文章,也放一些相关资源链接在这里

1.frida源码
GitHub - frida/frida: Clone this repo to build Frida

2.frida官方文档
Frida • A world-class dynamic instrumentation toolkit | Observe and reprogram running programs on Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD, and QNX

3.frida编译篇
Building | Frida • A world-class dynamic instrumentation toolkit

三、系统应用安装

在编译环境部署前,系统也需要安装一些应用,比如git, curl, 也相当于是一些常用的应用,一般开发人员的电脑上,这些应用应该不会没有。

还有一点就是必要的时候,需要科学上网。

这里不再多讲,直接上重点吧。

四、源码和环境部署

1、拉取Frida源码

git clone --recurse-submodules https://github.com/frida/frida

或者

git clone --recurse-submodules https://github.com/frida/frida.git

注意: 这样拉取的是Frida当前最新版本的源码,如果需要编译的是历史版本,需要再用git同步到历史

git checkout 15.2.2 #切换tag
git submodule update --recursive #其他子模块也跟着一起更新下

或者使用commit 3ff85a5

比如Frida 15.2.2的commit为 3ff85a5

git checkout 3ff85a5
git submodule update --recursive

2、node/npm版本

虽然frida的作者推荐新版本的nodejs和npm,尤其是v20和更新版本,但每一个版本的frida release都会有固定版本的nodejs,如果想要不出错,还是建议使用release版本中的node版本

其中node版本和NODE_MODULE_VERSION对照表可以网上查询

而我本次编译,采用的是108对应的v18.12.0。

nodejs历史版本下载: Index of /download/release/

设置环境变量:

# set node
export NODE_HOME=/home/ubuntu/work/node-v18.12.0-linux-x64
export PATH=$PATH:${NODE_HOME}/bin

验证环境变量设置:

注意:设置环境变量的方便有三种,分别是设置 ~/.bashrc, /etc/profile, /etc/environment。第一种只适用于当前登录用户,第二种和第三种会保存给所有用户。

细节可以网上搜索,很多文章。

3、安卓NDK

关于安卓NDK的版本,不同的Frida也会有不同的要求,具体的版本在你的Frida源码目录:/frida/releng/setup-env.sh。

打开文件,即可以找到。

下载地址:https://developer.android.com/ndk/downloads?hl=zh-cn

然后设置NDK的环境变量

#set NDK env
export NDK_HOME=/home/ubuntu/work/android-ndk-r24
export PATH=$NDK_HOME:$PATH

验证NDK环境变量:

4、python环境

Frida要求python3环境,而Ubuntu一般会自带python3, 比如我的就是python3.10。而且Frida编译会自动使用"python3"来调用python3。

系统没有安装的,或者版本不对的,可以自行安装。

5、安卓SDK安装。

目前安装安卓SDK的方法还是用android-studio靠谱,也简单。

然后设置SDK的环境变量

#set sdk
export ANDROID_SDK_HOME=/home/ubuntu/Android/Sdk
export PATH=$PATH:${ANDROID_SDK_HOME}/tools
export PATH=$PATH:${ANDROID_SDK_HOME}/build-tools/29.0.0
export PATH=$PATH:${ANDROID_SDK_HOME}/platform-tools

验证SDK变量设置成功:

6、JDK环境

JDK使用1.8,相信只要做开发的人都会部署。

这里有一个问题就是很多人电脑上有多个java环境,怎么把jdk8变成首选的环境变量呢:

sudo update-alternatives --config java

五、toolchain和sdk下载

个人推荐使用Frida的自动下载。

自动下载:

运行

make -f Makefile.skd.mk FRIDA_HOST=android-arm64

frida会自动同步toolchain和sdk, 这一步可能会需要很久。

六、开始编译

输入命令

make -f Makefile.linux.mk

可以看到各个版本的编译命令:

然后输入命令:

make core-android-arm64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/393285.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue创建项目报:Error: command failed: yarn

我的文件在:C:\Users\Administrator 下 原来里面 useTaobaoRegistry 是否使用淘宝源 是 false ,我改为true就好了 也可以 packageManager 默认安装工具 改为 npm 或 cnpm 原文连接:vue创建项目报:Error: command failed: yarn-阿…

Stable Diffusion教程——常用插件安装与测试(一)

前言 随着Stable Diffusion不断演进,越来越多的开发者开始涉足插件开发。尽管网络上存在大量教程,但它们通常零散分布,逐个学习和查找非常耗时,使人感觉每天都在劳累思考。这里总结了Stable Diffusion常用的插件安装与测试方法。…

搭建智能调度系统:同城代驾小程序的开发教学

当下,同城代驾服务越来越受到人们的青睐。为了满足市场需求,许多企业开始开发智能调度系统,以提高服务效率和用户体验。本文将介绍如何搭建一个智能调度系统,并以同城代驾小程序的开发为例进行详细教学。 第一步:需求…

科技守护大唐遗宝,预防保护传承千年

​ 一、“大唐遗宝——何家村窖藏出土文物展” 陕西历史博物馆的“唐朝遗宝——何家村窖藏出土文物展”算得上是博物馆展览的典范。展览不仅在于展现了数量之多、等级之高、种类之全,更在于对唐朝历史文化的深入揭露。 走入大唐财产展厅,好像穿越千年前…

The Captainz NFT 概览与数据分析

作者:stellafootprint.network 编译:cicifootprint.network 数据源:The Captainz NFT Collection Dashboard The Captainz 是 Memeland 的旗舰系列,由 9,999 个实用性极强的 PFP 组成。持有者在 Memeland 宇宙中展开了一场神…

【Python】测量WAV文件播放时长

问题 windows播放WAV音频文件,一般使用API函数,如PlaySound。实际使用发现,从调用PlaySound到实际开始播放存在200ms以上的延时,在游戏编程中音效实时性是个需要解决的问题。 本文主要讨论,windows播放WAV文件的衍生…

2024 VNCTF----misc---sqlshark sql盲注+流量分析

流量分析 wireshark 可以看到很多 any/**/Or/**/(iF(((((Ord(sUbstr((sElect(grOup_cOncat(password))frOm(users)) frOm 1 fOr 1))))in(80))),1,0))# P any/**/Or/**/(iF(((((Ord(sUbstr((sElect(grOup_cOncat(password))frOm(users)) frOm 1 fOr 1))))in(104))),1,0))#…

基于springboot智慧外贸平台源码和论文

网络的广泛应用给生活带来了十分的便利。所以把智慧外贸管理与现在网络相结合,利用java技术建设智慧外贸平台,实现智慧外贸的信息化。则对于进一步提高智慧外贸管理发展,丰富智慧外贸管理经验能起到不少的促进作用。 智慧外贸平台能够通过互…

Vue3

目录 一、 Vue3简介 1. 性能的提升 2. 源码的升级 3. 拥抱TypeScript 4. 新的特性 二、 创建Vue3工程 1. 基于 vue-cli 创建 2. 基于 vite 创建(推荐) 3. 一个简单的效果 三、Vue3核心语法 1. OptionsAPI 与 CompositionAPI (1)Options API …

前端vue金额用逗号分隔

实现效果 代码 template部分 <el-input v-model"state.val"></el-input><div>{{ priceFor(state.val) }}</div> js部分 const state reactive({ val: });const priceFor (val)> {if(!val){return }else if(val.length<4){return…

IP定位技术助力网络安全保护

随着网络技术的不断发展&#xff0c;网络安全问题日益凸显&#xff0c;如何有效保护网络安全已成为亟待解决的问题。IP定位技术作为一种前沿的网络安全防护手段&#xff0c;正在逐步成为网络安全保护的重要工具。 首先&#xff0c;我们要明确什么是IP定位技术。IP定位技术是一…

Instagram 账号被封如何申诉?ins账号解封经验分享

不知道各位在玩转海外社媒平台时有没有遇到过Instagram账号异常的情况&#xff0c;比如会出现账号受限、帖子发不出去、账号被封号等情况?Instagram账号如果被封不用马上弃用&#xff0c;我们可以先尝试一下申诉&#xff0c;看看能不能把账号解封。所以今天将会出一篇Instagra…

OpenAI视频生成模型Sora背后的技术及其深远的影响

前言 Sora的视频生成技术在保真度、长度、稳定性、一致性、分辨率和文字理解等方面都达到了当前最优水平。其核心技术包括使用视觉块编码将不同格式的视频统一编码成Transformer可训练的嵌入向量&#xff0c;以及类似于扩散过程的UNet方法进行降维和升维的加噪与去噪操作。通过…

19.Qt 组合框的实现和应用

目录 前言&#xff1a; 技能&#xff1a; 内容&#xff1a; 1. 界面 2.槽 3.样式表 参考&#xff1a; 前言&#xff1a; 学习QCombox控件的使用 技能&#xff1a; 简单实现组合框效果 内容&#xff1a; 1. 界面 在ui编辑界面找到input widget里面的comboBox&#xff…

Cesium 问题——加载 gltf 格式的模型之后太小,如何让相机视角拉近

文章目录 问题分析问题 刚加载的模型太小,如何拉近视角放大 分析 在这里有两种方式进行拉近视角, 一种是点击复位进行视角拉近一种是刚加载就直接拉近视角// 模型三加载 this.damModel = new Cesium.Entity({name: "gltf模型",position:</

【HarmonyOS】鸿蒙开发之TextInput组件——第3.3章

textInput属性 代码展示 Column(){Row(){Text("默认类型").margin({right:10})TextInput().width(60%).height(45)}.margin({bottom:10})Row(){Text("自定义样式").margin({right:10})TextInput().width(60%).height(45).fontColor(Color.Brown).enterKe…

LabVIEW轨道交通列车牵引制动试验平台

LabVIEW轨道交通列车牵引制动试验平台 概述 面对城市轨道交通领域对于高效、准确牵引制动系统的迫切需求&#xff0c;开发了一套基于LabVIEW软件与硬件相结合的试验平台。该平台模拟列车的牵引、制动等工况&#xff0c;通过高精度的数据采集与实时图形化展示&#xff0c;提升…

网页文档编写

工具 sphinx 推荐主题 &#xff1a;html_theme "sphinx_rtd_theme" html_theme_options {navigation_depth: -1, }效果如下图 参考文章 [ sphinx的安装与使用 — 野火]sphinx文档规范与模版 文档 (ebf-contribute-guide.readthedocs.io) Sphinx 文档目录 — Sphi…

反转一个单链表

反转一个单链表 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 需要虚拟节点么&#xff1f; 答&#xff1a;不需要&#xff0c;因为没有删除节点&#xff0c;只是改变了节点的指向。 遍…

OPENAI SORA一键60秒视频,沃卡AI全功能AI网站将及时更新支持

大家可以通过收藏网页www.woka.chat 直接进行访问&#xff0c;也可通过关注新公众号实现微信端使用~ 注册赠送大量额度&#xff0c;可用于网站全部功能&#xff08;问答和绘画&#xff09;&#xff01;每天签到也可领取充足使用额度&#xff01; 废话不多说&#xff0c;我们现…