1.加固apk的特征(各家.so文件名特征 使用软件检测)(腾讯乐加固 360加固 梆梆 爱加密 等 等)
2.第三方加固/自己加固(一般在哪家应用市场发布 就要用哪家的加固方案)
3.为什么要加固(一定程度保护源代码)
4.加固方式(.dex加固 .so加固)

新APK运行
先加载壳APP--->壳APP读Dex文件末尾的源APKD大小---->在内存中壳APP解密出源APP--->运 行源APP
壳APK有自己的Application对象
源APK有自己的Application对象
壳APK启动时 在AndroidMenifest.xml里找源APK的Application 执行它的oncreate方法 启动源 APK
逆向/脱壳方法
反编译/Hook技术和动态调试
Hook:先取得要Hook函数/方法的控制权,不用破坏程序
动态调试:反调试,汇编,计算内存地址
Hook Java层
Hook Native层(.so库)
在代码层 寻找要Hook的地方
进行Hook 改下代码逻辑
脱壳原理:
在壳APK解密源APK后,源APK被加载前,拦截这个过程中的系统函数 把内存中Dex dump出来
手动脱壳:
通过动态调试,跟踪计算Dex源文件的内存偏移地址,从内存中Dump出Dex文件 难度大,寄存器,汇编,反调试,反读写IDA
工具脱壳:
HOOK技术/内存特征寻找 简单易操作
基于xposed 脱壳工具:Fdex2:Hook ClassLoader loadClass方法 通用脱壳 dumpDex:https://github.com/WrBug/dumpDex
重写底层函数:DexExtractor:重写libdvm.so dexFileParse函数。脱梆梆 爱加密 libart.so 安卓7.0
逆向框架:筑好底层 提供开发接口 xposed(Java 编译) frida(Python Javascript 代码注入) 主要系统函数都已HOOK/基于xposed frida开发脱壳工具/有大神已开发上层应用模块 开发工具要了解 APP启动 加载过程的原理.
本文详细介绍了Android应用加固的原理和方法,包括第三方加固服务和自定义加固方案。讨论了为何需要加固来保护源代码,并阐述了.dex和.so文件的加固过程。此外,还探讨了逆向工程中的Hook技术和动态调试技术,以及脱壳方法,如使用xposed和frida等工具。同时,提到了针对不同加固方案的脱壳工具,如Fdex2和DexExtractor。
8719

被折叠的 条评论
为什么被折叠?



