首页 > 其他分享 >frida动态插桩初探

frida动态插桩初探

时间:2023-10-12 12:44:27浏览次数:32  
标签:Jniint hook https 初探 frida com 插桩

前言

近期碰到了分析app的需求,就学习了一下 frida的动态插桩技术。frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在我们自己的控制机上。frida上层接口支持js、python、c等。

环境配置

安装frida模块

pip install frida

安装frida-tools模块

pip install frida-tools

通过如下命令查看模拟器架构。从 https://github.com/frida/frida/releases 可下载对应架构的 frida-server,并上传到模拟器/手机中。

getprop ro.product.cpu.abi

frida hook java层 实操

这里拿的是一个别人写的 demo文件进行练手。实现的功能是,按了按钮就会返回一个随机数。

用jadx反编译apk可以很容易找到如下代码,我们知道如果我们可以控制 Jniint的返回值,便可以控制打印出来的数据。

通过如下代码便可hook其返回值为 6666。

Java.perform(function () {
    // we create a javascript wrapper for MainActivity
    var Activity = Java.use('com.erev0s.jniapp.MainActivity');
    // replace the Jniint implementation
    Activity.Jniint.implementation = function () {
        // console.log is used to report information back to us
        console.log("[+] Hook Jniint success!");
        // return this number of our choice
        return 6666
    };
});

参考连接

https://xz.aliyun.com/t/8211

https://erev0s.com/blog/how-hook-android-native-methods-frida-noob-friendly/

标签:Jniint,hook,https,初探,frida,com,插桩
From: https://www.cnblogs.com/pwnfeifei/p/17759233.html

相关文章

  • APP逆向-hook框架frida
    1hook框架frida#搜出位置---》找到了代码---》你确定他就是吗?#我们现在不确定代码有没有走咱们找的地方#借助于另一个东西,帮咱们确认,它确实走了它#hook框架---》通过hook(钩子)--》拦截把我找的函数hook住,看看有没有执行Hook框架是一种技术,用于在运行时拦截和修改应......
  • ovn控制器初探
    一.OVN架构介绍OVN由以下组件构成:northbounddatabase:存储逻辑交换机、路由器、ACL、端口等的信息,目前基于ovsdb-server。ovn-northd:集中式控制器,负责把northbounddatabase数据分发到各个ovn-controller。ovn-controller:运行在每台机器上的本地SDN控制器southbounddatab......
  • Kubernetes初探[1]:部署您的第一个ASP.NET Core应用到k8s集群
    原文:https://www.cnblogs.com/wl-blog/p/16936019.htmlKubernetes简介Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(CloudNativeComputingFoundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,K......
  • vue2原理初探-数据代理和数据劫持
    本篇文章主要想简单聊聊vue如何实现数据修改,页面联动的底层原理。当然,篇幅有限,只是自己一些浅显的认知而已,我会从一下几个方面去聊,希望对你有所帮助。几个基础知识点数据代理数据劫持完整demo 一、几个基础知识点1.普通函数和箭头函数的区别我们知道,每个函数执行都会......
  • ue4 初探
    扫盲学之前先扫个盲:https://www.unrealengine.com/zh-CN/?state=%2F4.27%2Fzh-CN%2Fhttps://www.bilibili.com/video/BV164411Y732?p=2&vd_source=e7d69fe6f27a4fce66589e592196cbbd安装既然要学,那就先安装,根据官方文档,官方文档永远是第一手文档安装文档:https://docs.unreal......
  • 初探信号量机制
    什么是信号量机制1965年,荷兰学者EdsgerDijkstra提出了一种经典的实现进程互斥、同步的方法--信号量机制。信号量机制用于解决并发访问共享资源的同步问题。信号量机制的主要目的是确保多个进程在共享资源时不会发生冲突,并且能够正确地同步和通信。信号量机制如今在操作系统......
  • 我的Linux网络之行2-初探内核网络
    前言在上一文中,初步了解了一些协议与相关的一些知识,至少已经有了一些概念,OK,那么下面就是我们对于开发的深入了。Linux以太网驱动架构OSI模型中将网络划分为七层,从下到上依次为:物理层(Physical)、数据链路层(DateLink)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Pre......
  • ViT和MAE模型结合初探
    介绍transfomer在NLP领域的应用已经非常广泛,但是在CV领域的应用还比较少,主要是因为CV领域的数据是二维的,而transfomer是基于序列的,因此需要将二维数据转换成序列数据,这就是ViT的由来。ViT是将图像分割成一个个patch,然后将patch展开成序列,再输入到transformer中,这样就可以将transf......
  • 初探修模的三维模型OBJ格式轻量化压缩的遇到常见问题与处理方法
    初探修模的三维模型OBJ格式轻量化压缩的遇到常见问题与处理方法 在对经过修模的三维模型进行OBJ格式轻量化压缩处理的过程中,可能会遇到一些常见问题。以下是一些常见问题以及相应的处理方法:1、顶点丢失和形状变形:在减小顶点数量的过程中,可能会导致一些细节部分丢失或者模型整......
  • Java代理模式初探
    代理模式是一种常见的软件设计模式。所谓的代理者是指一个类别可以作为其它对象的接口。代理者可以作任何东西的接口:网络连接、存储器中的大对象、文件或其它重要或无法复制的资源。有时候我们需要需要一个功能(通常是一个API)。该功能已经被某个类A实现了,代理类B实现相同的接口,并将......