记录一次成功的frida编译

news2024/12/26 20:55:20

长期接手python外包和爬虫,私聊哦

文章目录

  • 前言
  • 一、Frida是什么?
  • 二、Frida一些资源相关
  • 三、Frida源码编译准备
    • 1.安装包准备
    • 2.环境变量配置
  • 四、开始编译源码
  • 结束


前言

某社交平台X信的风控越发恶心,目前面临项目被砍的风险,做了n多的屏蔽策略,心力憔悴,薪资微薄。。。。。。本文记录了自己对frida进行编译前的最重要的一步 —— 环境搭建,下面进入正文:
在这里插入图片描述


一、Frida是什么?

rida是一款便携的、自由的、支持全平台的hook框架,可以通过编写JavaScript、Python代码来和frida_server端进行交互,可以动态调试手机APP的神奇,他是我目前接触过的唯一一个可以与电脑端进行交互的hook架构(可以与电脑端进行交互的hook框架有都牛逼这里就自行体会啦),博主也是使用起来得心应手。

二、Frida一些资源相关

1.frida源码
https://github.com/frida/frida

2.frida官方文档
https://frida.re/

3.frida编译篇
https://frida.re/docs/building/

三、Frida源码编译准备

1.安装包准备

1.本次编译版本
16.0.1
拉取源码:git clone --recurse-submodules https://github.com/frida/frida
注意:这里可能会拉取失败,我建议一个个文件夹去拉,因为frida源码下面包含了好几个库,一个个去啦不影响整个源码的项目结构

2.编译系统
Centos 7,具体如下:
在这里插入图片描述

3.node.js版本
v16.15.0
下载地址
检查是否安装成功(在系统环境配置完成下):直接执行node
在这里插入图片描述

4.ndk版本
r24
linux下载:wget https://dl.google.com/android/repository/android-ndk-r24-linux.zip
其他系统自行查找
查看ndk是否配置成功(在系统环境配置完成下):
在这里插入图片描述

5.python
3.8.0
下载地址
查看python是否安装配置成功(在系统环境配置完成下):
在这里插入图片描述

2.环境变量配置

vim /etc/profile,添加如下,然后使其生效source /etc/profile
在这里插入图片描述
vim ~/.bashrc,添加如下,然后使其生效source ~/.bashrc
在这里插入图片描述
如果时root用户以上配置在那个文件都可以,为了方便展示我配置两个地方,而两个配置文件的区别在于/etc/profile配置的时系统的环境变量, ~/.bashrc修改用户自己的环境变量,在非root用户的其他用户登录时候就可以感受到两种的区别了。

查看配置项是否生效:export
在这里插入图片描述

四、开始编译源码

1.toolchain和sdk下载

https://build.frida.re/deps/20210123/toolchain-linux-x86_64.tar.bz2
https://build.frida.re/deps/20210123/sdk-linux-x86_64.tar.bz2
https://build.frida.re/deps/20210123/sdk-android-arm.tar.bz2
https://build.frida.re/deps/20210123/sdk-android-arm64.tar.bz2

按需下载,其中“20210123”是frida中releng/deps.mk中的frida_deps_version
cat releng/deps.mk
后面部分则是toolchain-{平台+架构}.tar.bz2

2.创建build
在下载的源码frida目录下创建build文件夹,吧第一步中下载的toolchain和sdk放入build中
执行releng/setup-env.sh

3.再次配置环境
根据官方编译文档提示:

apt-get install build-essential curl git lib32stdc++-9-dev libc6-dev-i386 nodejs npm python3-dev python3-pip

不过这步我好像感觉没啥影响,可能是在上面安装包和配置环境的时候已经处理好了这些环境

4.开始编译
返回到frida目录下执行:make core-android-arm64
在这里插入图片描述
如图中最后结果没有提示error的时候说明编译成功,而编译完成之后的产物在我们刚刚建立的build文件夹:frida/build/frida-android-arm64/bin
在这里插入图片描述

结束

以上只是针对android-arm64的进行编译,其他的自行参考,环境这个东西有些时候是真的惹人头疼,之前环境有问题排除了好久最后解决了,还是有所收获的。到这里有些人就问啊,你这个编译源码也没有做一些屏蔽检测frida的策略,对不起,我的项目要没了(手动狗头)。最后创作不易,觉得有用的所帮助的话点点赞,thank you~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学生HTML个人网页作业作品----(画家企业8页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 公司官网网站 | 企业官网 | 酒店官网 | 等网站的设计与制 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 CSS&#…

ScanContext 论文详解 - 用途:Lidar SLAM 回环检测、空间描述符

深蓝学院(深蓝学院 - 专注人工智能与自动驾驶的学习平台)是专注于人工智能的在线教育平台,已有数万名伙伴在深蓝学院平台学习,很多都来自于国内外知名院校,比如清华、北大等。​ 来源: “深蓝前沿教育” …

汽车以太网线束测试及如何破局

今日,AEM联合维信仪器在深圳国际会展中心参加了第二十四届中国国际高新技术成果交易会https://baike.baidu.com/item/%E7%AC%AC%E4%BA%8C%E5%8D%81%E5%9B%9B%E5%B1%8A%E4%B8%AD%E5%9B%BD%E5%9B%BD%E9%99%85%E9%AB%98%E6%96%B0%E6%8A%80%E6%9C%AF%E6%88%90%E6%9E%9C%…

【自然语言处理(NLP)】基于注意力机制的中-英机器翻译

【自然语言处理(NLP)】基于注意力机制的中-英机器翻译 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国…

Java常用类和对象---尚硅谷Java入门视频学习

1.Object 常用方法: toString() 将对象转换成字符串。 toString默认打印的就是对象的内存地址,所以,为了能够更直观理解对象的内容,可以重写这个方法 hashCode() 获取对象的内存地址 equals() 判断两个对象是否相等, 如果相等&…

Netty-RPC

RPC:(Remote Procedure Call)-- 远程过程调用 (1)一个计算机通信协议。该协议允许运行与A计算机的程序调用运行于另一台计算机的子程序,而程序员无需额外滴为这个交互作用编程。 (2&#xff09…

华为机试 - 考古学家

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 有一个考古学家发现一个石碑,但是很可惜,发现时其已经断成多段,原地发现n个断口整齐的石碑碎片。为了破解石碑内容,考古学家希望有程序能帮忙计算复原后…

[附源码]java毕业设计旅游管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[数据结构]二叉树之堆的实现

🥁作者: 华丞臧. 📕​​​​专栏:【数据结构】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站…

各种信息收集

谷歌hack语法 site: baidu.com 搜索关于baidu.com的相关子域名网站 黑客 site:baidu.com 搜索关于baidu.com的子域名网站中有关字符“黑客”的网页 inurl: admin/login.php 搜索含有"admin/login.php"的url inurl: login site:baidu.com …

ATF SMC处理

文章目录ATF SMC上下文结构体SMC handler实现ATF SMC上下文结构体 ATF在处理SMC的时候会把CPU的寄存器保存起来,退出SMC的时候恢复现场。使用qemu_v8.mk编译出来的ATF没有定义CTX_INCLUDE_EL2_REGS,CTX_INCLUDE_FPREGS和CTX_INCLUDE_PAUTH_REGS。 lib/c…

Pytorch的grid_sample是如何实现对grid求导的?(源码解读)

Pytorch的grid_sample是如何实现对grid求导的?(源码解读) 这里本人的参考源码是grid_sample的CPU内核的CPP实现:https://github.com/pytorch/pytorch/blob/b039a715ce4e9cca82ae3bf72cb84652957b2844/aten/src/ATen/native/cpu/G…

【Detectron2】代码库学习-4. LazyConfig 配置文件

目录1. 配置文件2. LazyConfig 导入导出3. 递归实例化4. 基于LazyConfig的训练步骤4.1 导入依赖库4.2 日志初始化4.3 训练4.4 评估4.5 训练流程4.6 主函数入口5. TipsDetectron2是Facebook AI Research(FAIR)推出的基于Pytorch的视觉算法开源框架,主要聚焦于目标检测…

力扣160 - 相交链表【双指针妙解】

链表也能相交~一、题目描述二、思路分析与罗列三、整体代码展示四、总结与提炼一、题目描述 原题传送门 示例 1: 输入:intersectVal 8, listA [4,1,8,4,5], listB [5,6,1,8,4,5], skipA 2, skipB 3 输出:Intersected at ‘8’ 解释&…

MySQL索引

索引索引的相关概念索引分类索引的底层数据结构及其原理主键索引&二级索引聚集和非聚集索引哈西索引&&自适应哈西索引索引和慢查询日志索引优化索引的相关概念 什么是索引?索引其实就是一个数据结构。当表中的数据量到达几十万甚至上百万的时候&#x…

每个 Flutter 开发者都应该知道的一些原则

“仅仅让代码起作用是不够的。有效的代码经常被严重破坏。仅满足于工作代码的程序员表现得不专业。他们可能担心没有时间改进代码的结构和设计,但我不同意。没有什么比糟糕的代码对开发项目产生更深远、更长期的影响了。” ― Robert C. Martin,Clean Code:敏捷软件工艺手册…

fpga nvme 寄存器

图1所示的NVMe多队列,每个队列支持64K命令,最多支持64K队列。这些队列的设计使得IO命令和对命令的处理不仅可以在同一处理器内核上运行,也可以充分利用多核处理器的并行处理能力。每个应用程序或线程可以有自己的独立队列,因此不需…

基于Nacos的注册中心与配置中心

基于Nacos的注册中心与配置中心 Nacos简介 概述 Nacos全称是动态命名和配置服务,Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos主要用于发现、配置和管理微服务。 什么是Nacos Nacos支持几乎所有主流类型的服务的发现、配置和…

同花顺_代码解析_技术指标_A

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 ABI AD ADL ADR ADTM ADVOL AMV ARBR ARMS ASI ATR ABI 绝对幅度指标 算法:上涨家数减去下跌家数所得的差的绝对值。 该指标只适用于大盘日线。 行号 1 aa…

题目7飞机票订票系统

题目7飞机票订票系统问题描述:某公司每天有10航班(航班号、价格),每个航班的飞机,共有80个座位, 20排,每排4个位子。编号为A,BCD。如座位号:10D表示10排D座。 运行界面如下: 1)能从键盘录入订票信息:乘客的…