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 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向