安卓逆向入门

438 词

鼓捣半天才发现,安卓逆向同样很偏重对工具的使用,尤其是反编译必备的MT管理器/NP管理器。
而具体的逻辑修改需要Java和汇编基础(当然安卓源码实际上是smali)。

Apk文件结构

APK实际上是一种压缩文件,将后缀改为rar就能轻松解压。
apkexp.png
具体分析:
apk.png
很明显,其中最重要的是作为Java源码的classes.dex,查看和修改都需要经过反编译。
而resource文件则提供高效的资源索引,使逆向中的关键步骤之一定位变得方便。

逆向基本逻辑

下图是汉化的流程,其实逻辑一样。
logic.png
………..
为什么这就没了?感觉用集成工具的话需要做笔记的地方不多,而且很麻烦。
更重要的是藤本树的漫画太有趣不想花时间鼓捣这个了wwww

随想

最近想搞下学校跑步软件的安卓逆向,才明白汇编是拿来干啥的。

经过编译打包后的软件只有二进制机器码,但机器码与汇编代码一一对应,因此二进制机器码可以无损转为汇编,反过来当然也一样,因此可以通过修改汇编代码的方式直接逆向修改软件,而其他所有语言都做不到,也就是说汇编真正厉害的无损转机器码。

当然直接分析汇编太折磨,先分析通过反编译生成C语言或者Java代码的逻辑,再逆向去思考汇编如何修改即可。对于安卓来说,汇编就是Smali,反编译可以用jadx-gui。

留言