7.安卓逆向2-frida hook技术-介绍

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

工具下载:

链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89

提取码:zy89

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:6.安卓逆向2-手机安装charles证书

到这一定是手机可以被抓包了,然后2.安卓逆向-初识java语言这个java环境设置好(环境变量和idea)其它的不重要(比如不会写java代码,这个不重要,只要跟着把环境搞好就行),然后Python环境看python基础之搭建环境这个大哥写的,要确保java环境和Python环境搞好

开始安卓HOOK

frida是一个安卓HOOK框架,hook就是一种拦截app(应用)里面代码的技术,frida是一个主流框架,市面上只要搞安卓逆向的必会frida也必使用frida

安卓开发分为两层,一层是Native(也就是so文件,so文件可以用多种语言写,用js语言写的可以编译成so、用c语言也能编译成so,总而言之so就是非常规的java代码),一层是java

frida说明

frida是一个轻量级的Hook框架,可以用来监听app的动作,它的亮点,比如一个可以联网的app,比如短视频app,打开之后它会发送网络请求让服务器给返回短视频,这个操作发送和接收的操作是在app也就是apk文件里面发生的,这个frida就可以监听这个东西,这就是frida的亮点。

frida分两个部分,服务端和控制端,服务端运行在手机里面,然后通过进程注入来劫持app

frida可以hook到java也可以hook到so

为什么可以hook

现代应用分b/s架构(网页和服务器),c/s架构(客户端(app)和服务器)

b/s架构,比如加密代码都会在某个js文件里面,在我们本地电脑中

C/S架构中,比如加密的代码都会在apk文件里面,在我们本地手机中

为什么会在本地?

因为app里面要用数据,比如短视频app,服务器返回的视频,肯定要在app里面用,所以app里面必须要有解析视频数据的代码,如果不在本地app也没办法做

frida使用的是动态二进制插桩技术(DBI)

DBI可以做到的事情

1.可以访问进程的内存,就是手机打开一个app文件它就会打开一个进程,然后app里的数据都会放到进程的内存中,DBI让frida支持访问进程里的内存

2.在应用程序运行时覆盖一些功能

3.从导入的类中调用函数

4.在堆内存中查找对象实例并使用

5.HOOK,跟踪和拦截函数等

它可以拦截app中所有类和方法、入参、返回值

总结:

Frida使用二进制动态插桩技术,就是把一段代码动态的插入到app里面,但最终不会改变原有的程序,通过动态的插入,可以快速简单的分析出我们想要的源代码


img

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

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

相关文章

DB-GPT扩展自定义Agent配置说明

简介 文章主要介绍了如何扩展一个自定义Agent,这里是用官方提供的总结摘要的Agent做了个示例,先给大家看下显示效果 代码目录 博主将代码放在core目录了,后续经过对源码的解读感觉放在dbgpt_serve.agent.agents.expand目录下可能更合适&…

Android 架构演进之路:从 MVC 到 MVI,拥抱单向数据流的革命

在移动应用开发的世界里,架构模式的演进从未停歇。从早期的 MVC 到后来的 MVP、MVVM,每一次变革都在尝试解决前一代架构的痛点。而今天,我们将探讨一种全新的架构模式 ——MVI(Model-View-Intent),它借鉴了…

【YOLOv8-pose部署至RK3588】模型训练→转换RKNN→开发板部署

已在GitHub开源与本博客同步的YOLOv8_RK3588_object_pose 项目,地址:https://github.com/A7bert777/YOLOv8_RK3588_object_pose 详细使用教程,可参考README.md或参考本博客第六章 模型部署 文章目录 一、项目回顾二、文件梳理三、YOLOv8-pose…

集成30+办公功能的实用工具

软件介绍 本文介绍的软件是千峰办公助手。 软件功能概述与开发目的 千峰办公助手集成了自动任务、系统工具、文件工具、PDF工具、OCR图文识别、文字处理、电子表格七个模块,拥有30余项实用功能。作者开发该软件的目的是解决常见办公痛点,把机械操作交…

IDEA启动报错:Cannot invoke “org.flowable.common.engine.impl.persistence.ent

1.问题 项目启动报错信息 java.lang.NullPointerException: Cannot invoke "org.flowable.common.engine.impl.persistence.ent 2.问题解析 出现这个问题是在项目中集成了Flowable或Activiti工作流,开启自动创建工作流创建的表,因为不同环境的数据…

网络安全--PHP第三天

今天学习文件上传的相关知识 上传的前端页面如下 upload.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

【愚公系列】《生产线数字化设计与仿真》004-颜色分类站仿真(基础概念)

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…

基于 uni-app + <movable-view>拖拽实现的标签排序-适用于微信小程序、H5等多端

在实际业务中&#xff0c;我们经常遇到「标签排序」或「菜单调整」的场景。微信小程序原生的 movable-view 为我们提供了一个简单、高效的拖拽能力&#xff0c;结合 Vue3 uni-app 的组合&#xff0c;我们可以实现一个体验良好的标签管理界面。 核心组件&#xff1a;<movab…

一些较好的学习方法

1、网上有一些非常经典的电路&#xff0c;而且有很多视频博主做了详细的讲解。 2、有一部分拆解的UP主&#xff0c;拆解后会还原该器件的原理图&#xff0c;并一步步做讲解。 3、有两本书&#xff0c;数电、模电&#xff0c;这两本书中的内容很多都值得学习。 5、某宝上卖的…

《1.1_4计算机网络的分类|精讲篇|附X-mind思维导图》

网络相关知识 按使用范围分类 公用网 由电信部门或其他提供通信服务的经营部门组建、管理和控制&#xff0c;向全社会提供服务的网络。 专用网 由某个单位或部门组建、仅供本单位或部门内部使用的网络。 按传输介质分类 有线网络 如&#xff1a;双绞线、同轴电缆、光纤…

Git 和 GitHub 学习指南本地 Git 配置、基础命令、GitHub 上传流程、企业开发中 Git 的使用流程、以及如何将代码部署到生产服务器

Windows 上 Git 安装与配置 下载安装&#xff1a;访问 Git 官方网站下载适用于 Windows 的安装程序。运行安装包时会出现许可协议、安装目录、组件选择等界面&#xff08;如下图&#xff09;。在“Select Components”页面建议勾选 Git Bash Here 等选项&#xff0c;以便在资源…

航空航天领域对滚珠丝杆的精度要求有多高?

航空航天领域对滚珠丝杆的精度要求非常高&#xff0c;尤其是飞行器、火箭和卫星等载具的导航和定位系统都需要高精度的滚珠丝杆&#xff0c;以确保高精度的位置控制和稳定的导航性能。那么&#xff0c;航空航天领域对滚珠丝杆的精度要求有多高&#xff1f; 1、定位精度&#xf…

技术篇-2.5.Matlab应用场景及开发工具安装

Matlab 在数学建模和数值分析等领域具有无可替代的地位。它几乎涵盖所有常见数学算法的内置函数库&#xff0c;使得从数据预处理、方程求解到优化算法的实现&#xff0c;无需编写大量底层代码即可快速完成&#xff1b;同时&#xff0c;Matlab 强大的可视化能力&#xff0c;可以…

Vtk概览1

vtk环境搭建 见&#xff08;VTK开发环境配置(Visual Studio C)-详细图文教程-CSDN博客&#xff09; 在学习vtk图形图像进阶的第二章时&#xff0c;通过vs2022建的控制台程序&#xff0c;编写运行示例2.1 发现 不显示图像。 #include <iostream> #include<vtkRenderW…

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

目录 数据概述一、输入数据与处理二、融合算法1. ESTARFM(Enhanced STARFM)2. ubESTARFM(Unbiased ESTARFM)代码实现数据下载参考根据论文《Generating daily 100 m resolution land surface temperature estimates continentally using an unbiased spatiotemporal fusion…

Lucide:一款精美的开源矢量图标库,前端图标新选择

名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、前言:为何选择 Lucide?二、Lucide 是什么?1. 基本介绍2. Lucide vs Feather三、如何在项目中使用 Lucide?1. 安装图标包(以 React 为例)2…

BeanUtil和BeanUtils有什么区别

BeanUtil 和 BeanUtils 是两个常见的工具类&#xff0c;通常用于 Java 开发中处理对象之间的属性复制或转换。它们的功能可能看起来相似&#xff0c;但实际上它们来自不同的库&#xff0c;并且在实现细节和使用方式上存在一些差异。 以下是它们的主要区别&#xff1a; 1. 来源…

【CF】Day66——Edu 168.D + CF 853 (Div. 2).C (树 + 二分 + 贪心 | 组合数学)

D. Maximize the Root 题目&#xff1a; 思路&#xff1a; 树上二分&#xff0c;中下题 我们可以发现如果 x 可以&#xff0c;那么 x - 1 肯定也可以&#xff0c;所以可以直接二分答案 具体的&#xff0c;我们每次二分能增加的值 mid &#xff0c;如果 a[i] < mid&#xf…

生成对抗网络(GANs)中的损失函数公式 判别器最优解D^*(x)的推导

https://www.bilibili.com/video/BV1YyHSekEE2 这张图片展示的是生成对抗网络&#xff08;GANs&#xff09;中的损失函数公式&#xff0c;特别是针对判别器&#xff08;Discriminator&#xff09;和生成器&#xff08;Generator&#xff09;的优化目标。让我们用Markdown格式逐…

分布式爬虫架构设计

随着互联网数据的爆炸式增长&#xff0c;单机爬虫已经难以满足大规模数据采集的需求。分布式爬虫应运而生&#xff0c;它通过多节点协作&#xff0c;实现了数据采集的高效性和容错性。本文将深入探讨分布式爬虫的架构设计&#xff0c;包括常见的架构模式、关键技术组件、完整项…