接下来几篇文章主要是对常见加解密算法的认识和逆向分析,如果不了解加解密算法的话我们直接去分析app是比较困难的。
-
so函数Hook(上)
Xposed插件开发之对so中函数的处理对so中函数的hook跟对java层函数的hook不同,Xposed无法完成对so层函数的hook。需要使用其它的框架编写so层的hook代码,然后通过xposed进行主动调用的方式来完成hook。 这里我们先... -
Hook多dex的app
本章内容为多dex的hook
之前一章分析了对加壳的app进行hook,但是在多dex的情况下我们可能并不知道哪个ClassLoader加载了我们想要hook的dex。
-
Hook加壳app
本章主要分析怎么处理加壳app 之前几篇文章编写的Xposed插件都是在没有加壳的情况下编写的,如果加壳后应该怎么处理 在应用内部代码被加固的情况下,如何hook到内部代码 因为ClassLoader是壳的ClassLoader 因为Xposed... -
主动调用函数
本章主要内容:
主动调用类函数
- 使用java反射完成对类函数的调用
- 使用Xposed的API完成对类函数的调用
-
hook一般函数
对一般函数的hook流程和对构造函数的hook流程大致一样,Xposed不仅能对java函数进行hook也能对JNI函数进行hook
本章主要是对java中以下这几类一般函数进行hook
- 一般java函数的hook
- 内部类中的函数hook
- 匿名内部类函数的hook
- 类中JNI函数的hook
-
修改属性
本章主要使用Xposed来修改类和类对象的属性
Xposed不止是可以实现对app自己实现的类构造函数进行hook,对于系统框架层的java函数也可以进行hook
加壳厂商一般使用的加载dex有,DexClassLoader、InMemoryDexClassLoader(8.0以后)、以及动态下发dex
-
Hook构造函数
本章主要是配置一下Xposed开发环境,以及对构造函数进行一个简单的hook。梳理一下Xposed插件开发流程
-
KGBMessager解密
本章主要内容为:
- spawn/attach时机的选择
- 主动调用
- hook时机选择
- 制作自己的dex并动态加载
- 使用Z3求解/符号执行
-
RPC概念和实例
本章来看一下RPC相关的问题
RPC远程过程调用,是一种计算机通信协议,用于在计算机网络中的程序之间进行通信。它允许程序调用另一个地址空间(通常是远程机器上的程序)的过程,就像调用本地过程一样,而无需显式地处理网络细节。
在RPC中,客户端程序调用远程服务器上的过程,就像调用本地过程一样。RPC框架负责将参数传递给远程过程并返回结果。这使得分布式计算变得更加容易,因为开发人员可以将远程调用抽象为本地调用,而不必去关心底层网络通信的实现细节。
-
六层锁机分析
本章来通过一个案例更深层次的去了解frida,在各种情境下怎么去修改函数的返回值
-
Frida构造数组、对象、Map和类参数
本章主要内容为hook后参数如何打印和构造
环境:
设备:pixel XL
系统版本:Android 7.1