OLLVM 混淆下的算法还原,如 OLLVM_MD5、OLLVM_SHA1、OLLVM_Base64

前言 OLLVM(Obfuscator-LLVM)是目前 Android 逆向分析中最常见的混淆手段之一。经过 OLLVM 混淆后的 SO 文件,其控制流被严重打乱,常量被加密,传统的通过搜索魔数常量来识别算法的方法往往失效。本文将讲解 OLLVM 混淆对算法识别的影响,以及针对 OLLVM_MD5、OLLVM_SHA1、OLLVM_Base64 的还原策略和实战技巧。 OLLVM 混淆...

发布于 Android 逆向

使用 Frida Stalker 进行 OLLVM_AES 算法的追踪

前言 在上一篇文章中,我们讨论了 OLLVM 混淆下 MD5、SHA1、Base64 等算法的还原策略。本文将进一步深入,针对 AES 这类结构更复杂、轮函数更多的对称加密算法,讲解如何使用 Frida Stalker 在 OLLVM 混淆的代码中追踪和还原算法执行流程。AES 的还原难度远高于简单的哈希和编码算法,因此需要更精细的追踪策略。 Frida Stalker 工作机制回顾 ...

发布于 Android 逆向

内存断点的设置与定制内核体验

前言 在前面的文章中,我们讨论了通过代码追踪和动态分析来还原算法。本文将介绍另一种强大的分析手段——内存断点(Memory Breakpoint)。与普通的执行断点不同,内存断点可以在指定的内存地址被读取、写入或执行时触发,这在追踪加密数据变化、定位密钥派生时机等场景中非常有用。此外,我们还将探讨定制 Android 内核以实现更高级的调试能力。 内存断点的概念和类型 什么是内存断点 ...

发布于 Android 逆向

常见加解密算法的介绍

前言 在 Android 逆向分析中,加解密算法无处不在。无论是 APP 的签名校验、协议加密、还是用户密码的存储,都离不开各类密码学算法。掌握常见加解密算法的原理和特征,是进行算法还原和协议分析的基础功。本文将从对称加密、非对称加密、哈希算法、编码算法以及消息认证码五个维度,系统性地介绍常见加解密算法的原理,并重点讲解如何在逆向分析中快速识别这些算法。 对称加密算法 AES(Adva...

发布于 Android 逆向

针对 Base64、CRC32、MD5、SHA1 等算法的还原案例

前言 在 Android 逆向分析中,识别和还原标准算法是最基础也最高频的工作。很多时候 APP 使用的并不是自创算法,而是经过轻微伪装的标准算法。本文将通过 Base64、CRC32、MD5、SHA1 四种常见算法的还原案例,讲解如何从 SO 代码中快速识别标准算法,并给出完整的还原思路和实用工具推荐。 Base64 算法的识别与还原 Base64 原理回顾 Base64 是一种将二...

发布于 Android 逆向

C++程序逆向:类、构造析构函数、虚函数、虚表,继承、重载、覆盖、RTTI、异常

发布于 Android 逆向

C程序逆向:数据类型、运算符、分支与跳转、循环,函数、结构体、数组、位操作

发布于 Android 逆向

ARM 可执行程序的生成过程,ARM汇编寻址、汇编指令、汇编开发

发布于 Android 逆向

ARM汇编指令集,Thumb 汇编指令集,AArch64汇编指令集

发布于 Android 逆向

Android Studio邻编开发,内联汇编,内联汇编syscall,CMakeLists.txt加载S文件

发布于 Android 逆向