本章主要使用Xposed来修改类和类对象的属性
Xposed不止是可以实现对app自己实现的类构造函数进行hook,对于系统框架层的java函数也可以进行hook
加壳厂商一般使用的加载dex有,DexClassLoader、InMemoryDexClassLoader(8.0以后)、以及动态下发dex
本章主要使用Xposed来修改类和类对象的属性
Xposed不止是可以实现对app自己实现的类构造函数进行hook,对于系统框架层的java函数也可以进行hook
加壳厂商一般使用的加载dex有,DexClassLoader、InMemoryDexClassLoader(8.0以后)、以及动态下发dex
本章主要是配置一下Xposed开发环境,以及对构造函数进行一个简单的hook。梳理一下Xposed插件开发流程
本章主要内容为:
- spawn/attach时机的选择
- 主动调用
- hook时机选择
- 制作自己的dex并动态加载
- 使用Z3求解/符号执行
本章来看一下RPC相关的问题
RPC远程过程调用,是一种计算机通信协议,用于在计算机网络中的程序之间进行通信。它允许程序调用另一个地址空间(通常是远程机器上的程序)的过程,就像调用本地过程一样,而无需显式地处理网络细节。
在RPC中,客户端程序调用远程服务器上的过程,就像调用本地过程一样。RPC框架负责将参数传递给远程过程并返回结果。这使得分布式计算变得更加容易,因为开发人员可以将远程调用抽象为本地调用,而不必去关心底层网络通信的实现细节。
本章来通过一个案例更深层次的去了解frida,在各种情境下怎么去修改函数的返回值
本章主要内容为hook后参数如何打印和构造
环境:
设备:pixel XL
系统版本:Android 7.1
本章主要内容:
Frida基本操作:参数、调用栈、返回值
Frida精髓:方法重载、参数构造、动静态处理、主动调用、忽略内部细节,直接返回结果
逆向三段:(hook ・invoke)・rpc
本章用一个简单的仿微信数据库的案例来过一遍Objection的一些操作,怎么快速分析和主动调用。
设备:nexus5
系统版本:Android 6.0
在上一章搭建好了frida和objection环境,本章主要学习一下这些工具怎么使用
本章记录在kali上配置Frida开发和调试环境,这个环境配置真的相当麻烦,不同版本很容易碰到不兼容的问题需要多注意一下。
下面的安装流程仅限于kali 2023.3
版本
在之前的JNI代码中我们都是使用的静态注册,使用extern "C"
来编译,这样的代码在编译之后的so文件中仍然会保留原函数名,对APK的安全性有一定影响。
接下来我们尝试一下将静态注册的JNI函数改为动态注册,比较一下和之前有何不同。
以及对于改为动态注册的函数我们应该如何去追踪。
NDK中的内存管理:C/C++的new/malloc和delete/free以及JNI引用。