0x01
先说总结:
参照https://www.cnblogs.com/jiaoxiake/p/6818786.html 最后说的步骤,
参考:https://www.52pojie.cn/thread-586058-1-1.html
通过DexExtractor将加固后的apk还原odex,拖到jeb里面继续分析,odex-dex步骤没完成。
0x02:
同事小哥在找分析一个apk,找里面一点逻辑,发现apk被梆梆加固了。
正常apktool反编译无法找到清单文件里面注册的服务。
找了下lib文件里,2个so文件,搜索发现和BANGBANG相关,顺带搜到了TUOKE的文章
0x03:
参照教程,需要使用DexExtractor,有几种方式
1.自己编译源码,修改dexFileParser函数,刷机
2.找个4.4机器,ROOT掉,替换libdvm.so,重启
3.找个4.4机器,刷system.img,重启
源码在U里面,回去编译再刷,觉得有点麻烦,要是长期使用,可以考虑。
手里有Nexus5,刷的lineageos,再折腾一边刷机觉得没必要,毕竟就一次~~
a.然后选择,用模拟器,AVD里面选择SDK19 ARM CPU的模拟器,下载安装
获得模拟器如上
感谢前辈提供将已经编译好的system.img
地址在百度云:https://pan.baidu.com/s/1jG3WQMU
b.修改模拟器加载system.img地址,配置文件在 :hardware-qemu.ini
配置文件地址在: C:Usersxxxooo.androidavdNexus5XAPI19-4.4.avd
xxx为本机用户名,Nexus5XAPI19-4.4为你创建的模拟器名字 ,
修改hardware-qemu.ini里面 disk.systemPartition.initPath,或者直接将百度云下载好的syste.img替换过去[提前备份]
c.重启模拟器
将加固后的apk文件安装到模拟器
打开logcat,
打开adb shell ,将sdcard 目录mount一下
打开目标app,查看log日志 过滤 目标包名
顺利的话会看到:
看到已经生成n个dex文件,
至于为什么是多个dex文件,这个没搞明白,不知道会不会是因为因为加固故意分割dex
如果/sdcard/写入失败,会有log日志,
我的操作是,重启模拟器,开机就adb shell 进去 su 然后mount sdcard 给777权限
e.将生成后的dex文件pull到电脑,
查看/sdcard/ 目录,只要文件名字包含目标包名的就是,全都pull出来,了,例如都放到 hack 目录
下载git中的DexExtractor项目,使用其中的 Decode.jar 还原dex
java -jar Decode.jar hack ,hack为从手机内pull出来的dex目录
获得解密后的xxxx.read.dex
这次获得的为odex格式,拖到WinHex 看透文件为 dey 036
文件拖到jeb可以直接看,不过要点击 inner_dex
如果想要直接看dex,还需要使用:baksmali ,这里我就没有操作,
有个技巧,pull出来的dex有4个,通过jeb将每个都反编译,导出为java保存在不同文件夹。
然后,通过notpad++全局查找需要找的代码,比如某个字符串(定义在string.xml的除外)或者代码
定位到,再用jeb打开dex,可以查看调用关系,不然,导出为java后,导入studio或者eclipes调用关系很可能无法生成
基本操作就这些
同事小哥如愿找到了想要的,晚上加鸡腿
后来发现 赵四前辈的 文章更详细,
地址: http://www.wjdiankong.cn/apk%E8%84%B1%E5%A3%B3%E5%9C%A3%E6%88%98%E4%B9%8B-%E5%A6%82%E4%BD%95%E8%84%B1%E6%8E%89%E6%A2%86%E6%A2%86%E5%8A%A0%E5%9B%BA%E7%9A%84%E4%BF%9D%E6%8A%A4%E5%A3%B3/
仅此记录下