• 梆梆加固还原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/

      仅此记录下

      

      

  • 相关阅读:
    C++
    Qt简介
    C语言
    C/C++
    swagger2 Illegal DefaultValue null for parameter type integer
    maven包引入问题ClassNotFoundException: org.elasticsearch.client.Cancellable
    mysql自定义排序
    使用node创建服务器 运行vue打包的文件
    rsync实现服务器之间同步目录文件
    将jar包发布到maven的中央仓库细节整理
  • 原文地址:https://www.cnblogs.com/wang-xiaohao/p/8134653.html
Copyright © 2020-2023  润新知