# 使用 Frida 实现 Python RPC 的教程
在这个教程中,我们将学习如何使用 Frida 实现 Python RPC(远程过程调用)。Frida 是一个强大的动态工具,用于开发、调试和安全分析。通过 RPC,我们可以实现 Python 和 JavaScript 之间的通信,从而更灵活地控制和操作被注入的应用程序。以下是我们将要完成的步骤。
## 流程概览
| 步骤 | 描述
目录一、使用fiddler对app进行抓包二、反编译app定位关键代码三、frida-rpc调用相关方法 一、使用fiddler对app进行抓包 通过抓包可以看到请求参数中X-App-Token: e8f1c71569a7166b6aa9723342923606edc38cb9-c72d-3bc4-8e82-6fd9212d77a00x5fdb0663每次请求都是变化的,这里需要反编译app进行
转载
2024-04-03 09:41:23
1958阅读
# Frida Python RPC 调用:动态分析的利器
随着软件开发的复杂性增加,传统的静态分析手段日益显得无力。动态分析工具因其高效性和准确性而受到越来越多开发者和安全研究员的青睐。Frida就是这样一种工具,它让开发者可以轻松地在运行时插入自定义代码,来监控和操控被分析的程序。本文将深入探讨Frida及其Python支持,并演示如何使用RPC调用来实现动态分析。
## Frida简介
1、上次自己构造了一个app来调用x音的关键so,结果在一条“LDR R0, [R4,#0xC] “语句卡住了:通过ida查看得知:R4就是第三个参数,这里被当成了地址使用(java层怪不得用long类型)!第三个参数我是用frida hook得到的,换了个环境地址肯定也变了,所以这里直接”抄袭“拿过来用肯定报错,这种反调试的方法实在是秒啊!动态调试暂时卡壳,我们先来静态
转载
2023-11-14 15:39:08
585阅读
各位被困在家中的小伙伴们,大家新年好~今天将继续为大家带来用Python进行gRPC接口测试的续集,上次主要讲了一下前期准备工作和简单RPC通信方式的实现,这次我们将着眼于另一类gRPC接口的通信形式——流式RPC。上期回顾:用Python进行gRPC接口测试一、流式RPC的三种具体形式 &n
转载
2023-10-15 07:34:16
250阅读
在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 public class Test {
public static void main(String[] args) {
HelloWorldService helloWorldService = new HelloWo
文章目录概述RPC的概念Thrift架构设计一、Transports1、 Transports接口2、End Point Transports3、Layered Transports4、Server Transports二、Protocol三、The IDL and Compiler1、User-Defined Types2、Service Stubs四、Servers总结概述Thrif
React高级指引:Refs转发引言将refs转发给DOM组件组件库维护者的注意事项在高阶组件中转发refs在DevTools中显式自定义名称 引言Ref转发是一项自动从组件中将ref传递给其子组件的技术。但这在绝大部分组件中不是必需的。但是这对某些组件来说会非常有用,尤其是在某些可复用的第三方组件库中。常见的场景我们将在下面的内容描述。将refs转发给DOM组件我们来考虑下面的例子,Fancy
NFS-NFS目的是让不同计算机不同操作系统之间可以彼此共享文件。-采用服务器/客户端工作模式ip-在NFS服务器上将目录设置为输出目录(即共享目录)后,客户端就可以将这个目录挂载到自己系统中的某个目录下。什么是RPC守护进程?使用NFS服务,至少需要启动一下3个系统守护进程。-rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登入服务器。-rpc.mountd: 它是RPC
转载
2024-10-09 13:09:29
56阅读
附网址:http://qt-project.org/doc/qt-5/qmlfirststeps.htmlCreating a QML Document —— 创建一个QML文件一个QML文件定义了对象的层次结构:具有高度可读的,结构化的布局。每个QML文件由两部分组成:一个引入(import)部分,以及一个对象声明(declaration)部分。用户界面中最常用的的类型(types)和功能由引入
环境说明centos7/8rpmbuildrpmdev-setuptree# 用于安装制作rpm包的文件
yum install rpm-build rpmdevtools制作拥有自定义目录的rpm包生成对应的目录结构rpmdev-setuptree
# 默认将使用用户家目录创建对应文件
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
|--
转载
2024-09-03 14:48:29
79阅读
环境说明centos7/8rpmbuildrpmdev-setuptree# 用于安装制作rpm包的文件
yum install rpm-build rpmdevtools制作拥有自定义目录的rpm包生成对应的目录结构rpmdev-setuptree
# 默认将使用用户家目录创建对应文件
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
|--
转载
2024-09-03 14:52:59
28阅读
一、前言如果不是因为热爱,我不会这样;如果不是为了,涨点粉丝,我不会这样; 如果不是为了几两散碎银子,我更不会这样。二、目标本系列文章的总体目标是从零实现一个RPC框架,我们将从TCP通信协议开始, 一步一步实操,将socket 二进制数据流一步一步变成Java可以认识的数据类型, 从而最终实现RPC远程通信,并可以集成在Spring中,同时也可以支持SpringBoot的自动化配置。最终我们会将
FridaFrida是一个动态代码执行工具包,通过Frida开源把一段Javascript代码注入到一个进程中去,或者把一个动态库加载到另一个进程中去。为什么使用 Python API,但使用 JavaScript 调试逻辑?Frida核心引擎是用C写的,并且集成了Google的Javascript引擎V8,把包含V8的代码注入到目标进程之后,通过一个专门的信息通道,目标进程就可以和这个注入进行的
转载
2024-04-15 09:43:58
346阅读
前言还是那句,我会借鉴龙哥的文章,以一个初学者的角度,加上自己的理解,把内容丰富一下,尽量做到不在龙哥的基础上画蛇添足,哈哈。感谢观看的朋友分析首先抓个包看看:这里面这个sign,就是今天的重点了这个app没有壳,直接jadx打开,然后搜【sign"】或者【sign=】很快的,就找到这个地方目前确实还不确定是不是这里,用objection hook下就知道了: 先hook了类,一堆,卧槽
转载
2024-08-03 13:01:54
205阅读
Frida 使用教程和错误汇总前情Frida安装安装流程华为手机Segmentation faultUnable to save SELinux policy to the kernel: Out of memory Segmentation faultFrida基本使用教程Frida hookFrida hook Java函数Frida hook 类静态函数Frida hook 类中所有函数F
转载
2024-05-14 22:49:51
1014阅读
proto文件: syntax = "proto3";
package coupon;
//
//message UnsetUseC2URequest {
// int64 bid = 1;
// int64 uid = 2;
// int64 sid = 3;
// int64 transId = 4;
// repeated int64 c2uIds =
在微服务中,使用什么协议来构建服务体系,一直是个热门话题。 争论的焦点集中在两个候选技术: RPC or RestfulRestful架构是基于Http应用层协议的产物,RPC架构是基于TCP传输层协议的产物。网络七层模型在说RPC和HTTP的区别之前,了解一下七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层: (从上到下)第一层:应用层。定义了用于在网络中进行通信
转载
2024-04-09 21:15:11
83阅读
要想先理解远程调用,那么首先必不可少的就是理解本地调用本地调用我们当初的单体应用项目所有的请求就是本地调用。例如:将一个学生信息进行修改,首先前台http请求后端接口,调用当前项目所提供的功能规范进行传参,最后实现调用修改功能远程调用在上诉的过程中,本地http请求当前项目提高的学生修改功能,但是真正的更改功能服务在另一个项目中运行,也就是说你真实要访问的服务在另一个主机,你在当前请求的接口功能修
转载
2024-04-23 08:39:26
91阅读
一.js代码讲解 rpc.exports = { //固定写法 myfunction: function (data){ //自定义方法名 myfunction ,入参 function byte_ToHexString(uint8arr) { //busr数组转16进制 var hexStr =
原创
2021-06-03 19:27:28
1870阅读