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:\Users\xxxooo\.android\avd\Nexus5XAPI19-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/

  仅此记录下

  

  

梆梆加固还原DEX文件的更多相关文章

  1. 如何做好移动安全(梆梆加固后的APK破解提取dex)

    智能手机的普及将移动互联网的发展推到了一个让所有人都为之兴奋的高度,我想即使是以商业眼光见长的“苹果教父”乔布斯也不会料想到短短几年时间,智能手 机就已经成为了所有人离不开的商业产品,各种商业应用层出 ...

  2. Andorid APK反逆向解决方案---梆梆加固原理探寻

    本文章由Jack_Jia编写,转载请注明出处.   文章链接:http://blog.csdn.net/jiazhijun/article/details/8892635 作者:Jack_Jia    ...

  3. android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测

    android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测https://dev.bangcle.com/ 业内专业的应用加固服务供应商 帮助数十万APP抵御破解风险,早 ...

  4. Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客<Android平台dalvik模式下java Ho ...

  5. 最新 梆梆安全java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.梆梆安全等10家互联网公司的校招Offer,因为某些自身原因最终选择了梆梆安全.6.7月主要是做系统复习.项目复盘.Leet ...

  6. IDA在内存中dump出android的Dex文件

    转载自http://drops.wooyun.org/tips/6840 在现在的移动安全环境中,程序加壳已经成为家常便饭了,如果不会脱壳简直没法在破解界混的节奏.ZJDroid作为一种万能脱壳器是非 ...

  7. Android应用安全之外部动态加载DEX文件风险

    1. 外部动态加载DEX文件风险描述 Android 系统提供了一种类加载器DexClassLoader,其可以在运行时动态加载并解释执行包含在JAR或APK文件内的DEX文件.外部动态加载DEX文件 ...

  8. sql server还原数据库文件(.bak)常见问题解决办法笔记

    还原的时候出现错误:备份集中的数据库备份与现有的数据库不同 SQL Server 2005数据库还原出错错误具体信息为:备份集中的数据库备份与现有的A数据库不同 具体操作如下:第一次:新建了数据库A, ...

  9. class 文件与dex文件区别 (dvm与jvm区别)及Android DVM介绍

    区别一:dvm执行的是.dex格式文件  jvm执行的是.class文件   android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和 ...

随机推荐

  1. C语言头文件怎么写?(转载)

    ---恢复内容开始--- c语言头文件怎么写?我一直有这样的疑问,但是也一直没去问问到底咋回事:所以今天一定要把它弄明白! 其实学会写头文件之后可以为我们省去不少事情,可以避免书写大量的重复代码,还在 ...

  2. [转载]——Axure+SVN配置

    最近进行考试系统重构,一个小组十几个人,这么多人要同时搞需求画原型.这样原本的合作开发工具SVN已经不能满足现在的需求了,这是就找到了一个新的方法——Axure+SVN. 在SVN服务器端建立一个空的 ...

  3. POJ-2029 Get Many Persimmon Trees---二维树状数组+枚举

    题目链接: https://vjudge.net/problem/POJ-2029 题目大意: 有N棵树在一个n*m的田里,给出每颗树的坐标 用一个s*t的矩形去围,最多能围几棵树 思路: 用二维树状 ...

  4. 移除input number上的spinner

    HTML 5 的表单中有着丰富的input种类,比如说input[type="number"],就可以保证用户输入数字,但是input也有一些不好的地方——带有 spinner. ...

  5. 读取当前路径,列出xls文件

    import java.io.File; public class GetCurrentDirectory { public String GetDirectory() { File director ...

  6. java读取pfx或P12格式的个人交换库公私钥

    使用的是CFCA签发的用于银行间交换数据的证书,下载后直接添加到浏览器中 1.导出 从浏览器导出p12文件(包含私钥) 2.验证 两种方式: openssl 代码(请注意alias别名是如何获取的): ...

  7. Javascript与C#中使用正则表达式

    JavaScript RegExp 对象 新建一个RegExp对象 new RegExp(pattern,[attributes])           注: \d需要使用[0-9]来代替 参数 参数 ...

  8. java基础30问

    Java基础知识30问   1. 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用 ...

  9. Servlet的工作原理和生命周期

    Servlet的工作原理 . Web服务器加载Servlet:Web服务器启动后,它会根据每个工程的web.xml文件去查找该工程的Servlet,并且找到这些Servlet的Class文件所在的地址 ...

  10. linux系统的启动过程简要分析

    接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下 ...