加壳的意义,加壳原理及技术发展,识别加壳

什么是加壳 在 Android 逆向工程的语境中,"加壳"(Packing)是指对 APK 中的核心文件(主要是 classes.dex)进行加密、混淆或压缩处理,并通过一个额外的"壳程序"(Stub/Shell)来负责在运行时解密并加载原始 DEX 的一种保护技术。壳程序通常是一个未加密的 DEX 文件或 Native SO 库,它在 Applic...

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

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

发布于 Android 逆向

FRIDA 高级 API:Frida Hook Java(1&2)、Frida hook native

Java.use() 进阶用法 在 FRIDA 高级逆向中,Java.use() 是 Hook Java 层代码的核心 API。除了常见的 Hook 普通类和方法外,它还支持处理枚举类、内部类和匿名类等复杂 Java 结构。 Hook 枚举类 枚举类在 Android 开发中广泛使用,例如定义状态码、类型标识等。使用 Java.use() Hook 枚举类时,需要注意枚举的静态实例是通过...

发布于 Android 逆向

FRIDA辅助分析 OLLVM 字符串加密

OLLVM 字符串加密的详细实现原理 字符串加密是 OLLVM 混淆中最基础也是最实用的 pass 之一。它的目标是将 SO 文件中的明文字符串转换为密文,使得静态分析工具(如 IDA 的 Strings 窗口、strings 命令)无法直接读取敏感信息。 加密流程 OLLVM 字符串加密在 LLVM 编译后端工作,具体流程如下: 源码中的字符串: "https://api.e...

发布于 Android 逆向

30 mA 的生死线:触电、漏保与 IEC 60479

走进任何一户规范装修的房子,配电箱里都有一两个带"T"按钮的开关——漏电保护器(RCD)。它的动作值是 30 mA。为什么是 30?不是 50,不是 10?这个数字不是拍出来的,它来自一份被全世界引用了四十多年的技术规范:IEC 60479《电流对人和家畜的效应》,中国对应国标 GB/T 13870.1。本系列一路讲元件、讲电源、讲电池,最后这篇回到人本身——因为所有电路...

发布于 硬件

锂电池与 BMS:电压表看不懂的那 40%

手机用到 20% 电量时突然关机,电动车表显还剩 60 公里却趴窝——这不是电池"坏了",是电池管理系统(BMS)没算准剩余电量(SOC, State of Charge)。SOC 估算是电池领域持续了三十年还没关题的问题,2025 年的综述论文还在为它整篇整篇地写。一颗锂电芯的电压曲线中段平得像高原,电压表在这个区间几乎给出不了任何电量信息——这就是本篇标题里"...

发布于 硬件