之前几章已经对分组密码的原理以及填充进行了详细分析,本章使用一个demo来进行实战分析
- 一个两层密钥的demo,第一层是java中的AES,第二层是native层的AES加密
之前几章已经对分组密码的原理以及填充进行了详细分析,本章使用一个demo来进行实战分析
前一章了解了AES的工作模式以及在java中的hook和so中的定位,本章主要来介绍一下分组密码的填充以及工作模式
经过插件、hook等方式分析出是AES或DES之后,接下来就要判断分组密码的填充和工作模式
本章主要是学习AES如何实现,如何对java中的AES方法进行hook,以及定位so文件中的AES
这里以AES-128为例,会对明文分组进行10轮迭代运算,加密的第1轮到第9轮的函数一样,包括4个操作:字节替换、行位移、列混合和轮密钥加。最后一轮迭代不执行行列混合。另外,在第一轮迭代之前,先将明文和原始密钥进行一次异或加密操作。
本章内容主要是DES加密的原理和如何在Java以及SO中识别DES算法
本章主要使用上一章开发的RC4代码作为例子进行分析,如何在逆向分析中识别RC4算法,以及如何通过编写frida代码来获取RC4的密钥。
本章的主要内容为对RC4算法原理的了解和实现
RC4是序列密码中用的非常广泛的一个加解密算法
接下来几篇文章主要是对常见加解密算法的认识和逆向分析,如果不了解加解密算法的话我们直接去分析app是比较困难的。
本章内容为多dex的hook
之前一章分析了对加壳的app进行hook,但是在多dex的情况下我们可能并不知道哪个ClassLoader加载了我们想要hook的dex。
本章主要内容:
主动调用类函数
对一般函数的hook流程和对构造函数的hook流程大致一样,Xposed不仅能对java函数进行hook也能对JNI函数进行hook
本章主要是对java中以下这几类一般函数进行hook
- 一般java函数的hook
- 内部类中的函数hook
- 匿名内部类函数的hook
- 类中JNI函数的hook