OLLVM 混淆下的算法还原,如 OLLVM_MD5、OLLVM_SHA1、OLLVM_Base64
前言 OLLVM(Obfuscator-LLVM)是目前 Android 逆向分析中最常见的混淆手段之一。经过 OLLVM 混淆后的 SO 文件,其控制流被严重打乱,常量被加密,传统的通过搜索魔数常量来识别算法的方法往往失效。本文将讲解 OLLVM 混淆对算法识别的影响,以及针对 OLLVM_MD5、OLLVM_SHA1、OLLVM_Base64 的还原策略和实战技巧。 OLLVM 混淆...
前言 OLLVM(Obfuscator-LLVM)是目前 Android 逆向分析中最常见的混淆手段之一。经过 OLLVM 混淆后的 SO 文件,其控制流被严重打乱,常量被加密,传统的通过搜索魔数常量来识别算法的方法往往失效。本文将讲解 OLLVM 混淆对算法识别的影响,以及针对 OLLVM_MD5、OLLVM_SHA1、OLLVM_Base64 的还原策略和实战技巧。 OLLVM 混淆...
前言 在上一篇文章中,我们讨论了 OLLVM 混淆下 MD5、SHA1、Base64 等算法的还原策略。本文将进一步深入,针对 AES 这类结构更复杂、轮函数更多的对称加密算法,讲解如何使用 Frida Stalker 在 OLLVM 混淆的代码中追踪和还原算法执行流程。AES 的还原难度远高于简单的哈希和编码算法,因此需要更精细的追踪策略。 Frida Stalker 工作机制回顾 ...
前言 在前面的文章中,我们讨论了通过代码追踪和动态分析来还原算法。本文将介绍另一种强大的分析手段——内存断点(Memory Breakpoint)。与普通的执行断点不同,内存断点可以在指定的内存地址被读取、写入或执行时触发,这在追踪加密数据变化、定位密钥派生时机等场景中非常有用。此外,我们还将探讨定制 Android 内核以实现更高级的调试能力。 内存断点的概念和类型 什么是内存断点 ...
前言 在 Android 逆向分析中,加解密算法无处不在。无论是 APP 的签名校验、协议加密、还是用户密码的存储,都离不开各类密码学算法。掌握常见加解密算法的原理和特征,是进行算法还原和协议分析的基础功。本文将从对称加密、非对称加密、哈希算法、编码算法以及消息认证码五个维度,系统性地介绍常见加解密算法的原理,并重点讲解如何在逆向分析中快速识别这些算法。 对称加密算法 AES(Adva...
前言 在 Android 逆向分析中,识别和还原标准算法是最基础也最高频的工作。很多时候 APP 使用的并不是自创算法,而是经过轻微伪装的标准算法。本文将通过 Base64、CRC32、MD5、SHA1 四种常见算法的还原案例,讲解如何从 SO 代码中快速识别标准算法,并给出完整的还原思路和实用工具推荐。 Base64 算法的识别与还原 Base64 原理回顾 Base64 是一种将二...