梆梆加固还原DEX文件

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/

  仅此记录下

  

  

原文地址:https://www.cnblogs.com/wang-xiaohao/p/8134653.html