一些app 希望能动态加载 或者说是 增加逆向难度
把部分类 写到插件里 实际用到的时候 再把插件加载到 内存里去
然后再
xiaomi.apk
1:
先抓包
2:
androidkiller反编译
搜索关键字
搜索不到
再多搜几个关键字 发现 还是搜不到
那么这是什么原因了
再用DDMS的
Start Method Profling 功能
记得勾选第二个选项 捕捉更全
对操作的这段时间的 method 捕获
可以查看这段时间 调用了哪些方法
然后对某些关键方法 类 去搜索 结果还是没搜出来
这说明 反编译出来 的 东西 并没有 某些关键方法 类
因为在 DDMS里捕获的 是肯定 被调用的
没搜出来说明 反编译出来的smali并没有
那么这时我们就要想到 是 部分关键类 被 抽取了
这些类是 在 动态运行的时候 才出来的
然后我们
到 assets 文件夹里 看到 有 plugins 文件夹 里面有 很多
*.dat 文件 很多插件
随便拖出一个 .dat文件 到 010Editor 里去分析下 文件格式
发现在 全是乱码 说明 这应该是被加密的 文件
实际要用的时候 是要解密的
apk里 实际用的时候 是先解密 然后加载到内存 再使用
那么我们是不是 要去分析下是怎么加密的 然后去解密了
这里 不需要
我们到手机的 data/data/小米商城包名文件夹下 面
可以通过 androidkiller 的
文件工具 打开到 这个里面去看下 它比安装后 没运行前 多了很多 文件 例如 app_pluginOutDex app_plugin_signed文件夹 应该来讲 这些里面 就有我们要的 已经解密出来的类 那么我们把这些文件 导出来分析下看 记得如果没权限的话 就要先 选中文件夹 然后 右键 修改下权限