梆梆加固还原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:\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文件的更多相关文章
- 如何做好移动安全(梆梆加固后的APK破解提取dex)
智能手机的普及将移动互联网的发展推到了一个让所有人都为之兴奋的高度,我想即使是以商业眼光见长的“苹果教父”乔布斯也不会料想到短短几年时间,智能手 机就已经成为了所有人离不开的商业产品,各种商业应用层出 ...
- Andorid APK反逆向解决方案---梆梆加固原理探寻
本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/8892635 作者:Jack_Jia ...
- android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测
android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测https://dev.bangcle.com/ 业内专业的应用加固服务供应商 帮助数十万APP抵御破解风险,早 ...
- Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客<Android平台dalvik模式下java Ho ...
- 最新 梆梆安全java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.梆梆安全等10家互联网公司的校招Offer,因为某些自身原因最终选择了梆梆安全.6.7月主要是做系统复习.项目复盘.Leet ...
- IDA在内存中dump出android的Dex文件
转载自http://drops.wooyun.org/tips/6840 在现在的移动安全环境中,程序加壳已经成为家常便饭了,如果不会脱壳简直没法在破解界混的节奏.ZJDroid作为一种万能脱壳器是非 ...
- Android应用安全之外部动态加载DEX文件风险
1. 外部动态加载DEX文件风险描述 Android 系统提供了一种类加载器DexClassLoader,其可以在运行时动态加载并解释执行包含在JAR或APK文件内的DEX文件.外部动态加载DEX文件 ...
- sql server还原数据库文件(.bak)常见问题解决办法笔记
还原的时候出现错误:备份集中的数据库备份与现有的数据库不同 SQL Server 2005数据库还原出错错误具体信息为:备份集中的数据库备份与现有的A数据库不同 具体操作如下:第一次:新建了数据库A, ...
- class 文件与dex文件区别 (dvm与jvm区别)及Android DVM介绍
区别一:dvm执行的是.dex格式文件 jvm执行的是.class文件 android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和 ...
随机推荐
- Git基本操作(add,commit的理解)
1.创建仓库 ——创建工作目录(Working Directory):git三种副本:工作目录(Working Direcotry),暂存区域(Stage,索引(Index)),仓库(History) ...
- CRUD全栈式编程架构之控制器的设计
页面 这里界面我采用jquery miniui来做的,当你完全了解了整个设计之后可以轻松切换到其他的js框架,个人认为类似muniui,easyui等等这类可以将web界面做得和winform类似的框 ...
- 触发transition的几种方式--转
鼠标单击 获取焦点 或元素发生任何改变,怎么说呢,目前的理解是,元素发生了什么改变,使得它跟以前不一样了.比如同样是p元素,先有一个样式.后来这个p被hover了.被focus了.或者通过另外一条途径 ...
- Poj(2240),Floyd求汇率是不是赚钱
题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> # ...
- http长链接
之前说过http的请求是再tcp连接上面进行发送的,那么tcp连接就分为长连接 和 短连接这样的概念,那么什么是长链接呢?http请求发送的时候要先去创建一个tcp的连接,然后在tcp的连接上面发送h ...
- 2017.11.4 JavaWeb-----基于JavaBean+JSP求任意两数代数和(改进的在JSP页面中无JSP脚本代码的)+网页计数器JavaBean的设计与使用
修改后的JSP中不含有JSP脚本代码这使得JSP程序的清晰性.简单 1.设计JavaBean 的Add.java 类 package beans; public class Add { private ...
- IntelliJ IDEA 方法注释教程
首先Ctrl +Alt +S ,打开Settings ,找到Live Template,然后点击右侧的绿色的“+”,选择Template Group 然后给新建的Group随便命个名 选中自己刚才创建 ...
- [Ljava.lang.String; cannot be cast to java.lang.String报错的原因
完整错误信息: java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String 报这个错的原因 ...
- PAT (Basic Level) Practice 1023 组个最小数
个人练习 给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的 ...
- HyperLedger Fabric 1.4 区块链技术发展(1.3)
区块链技术发展经历区块链1.0(数字货币).区块链2.0(数字资产与智能合约)和区块链3.0(各种行业分布式应用落地)三个阶段.区块链在应用上分为公有链(PublicBlockChains).联盟链( ...