反编译之将脱壳后的dex文件重新打包成apk
前言:通过上一篇文章反编译之脱去乐固加固的壳,已经可以拿到dex文件了,那么我们怎么将dex文件重新打包回新的apk呢?如果有这样的疑问,就看看这篇文章吧!一定会帮到你的!
得到dex文件之后该做什么?
说实话在我刚得到脱壳后的dex的文件的时候,有点懵,我在想拿到这个dex文件之后该做什么呢?怎么将这个真正的dex文件重新打包回apk呢?我们都知道没有加固的app反编译之后,源码是smali文件,但现在我拿到的是dex文件,所以在拿到dex文件之后,我们要做的就是将dex文件编译成smali文件,然后重新编译成apk。
将dex文件编译成smali文件
将dex文件编译成smali文件,我们需要下载baksmali.jar文件,下载baksmali.jar文件之后,就可以通过以下命令将dex文件编译成smali文件了:
java -jar baksmali.jar smaliTest.dex
复制代码
如:你要编译的dex文件是testSmali.dex
则输入的命令是
java -jar basksmali.jar testSmali.dex
复制代码
如果编译成功,此时会生成一个out目录,out目录里面的文件就是smali文件了。有时可能会遇到下面的错误
Exception in thread "main"
com.beust.jcommander.MissingCommandException: Expected a command, got classes.dexat
com.beust.jcommander.JCommander.parseValues(JCommander.java:725)at
com.beust.jcommander.JCommander.parse(JCommander.java:304)at
com.beust.jcommander.JCommander.parse(JCommander.java:287)at org.jf.baksmali.Main.main(Main.java:90)
这时你只要将上面的命令换成
java -jar basksmali.jar disassemble testSmali.dex
复制代码
即可解决。
回编译的注意事项
回编译经过加固后的app,还需要修改AndroidManifest.xml
文件,具体的修改内容如下
需要将android:name="xxx"
里面"xxx"的内容换成android:value="yyy"
里面的"yyy",同时需要删除那行。
可能一个apk会有几个dex文件,在将dex文件编译成smali文件时会有好几个文件夹,这时我们要按下图来命名smali文件夹
好了,下面你就可以用apktool b xxx
来打包经过你脱壳后的apk了。
注意:这时猴的apk还不能直接安装哦,还需要进行签名,然后才能安装。
结束语
这篇文章有点短,其实将dex文件编译成smali文件本来就不复杂,这篇文章的主要目的是告诉在获得dex文件后,怎样将dex文件塞回去,重新打包生成新的apk,在这个过程中如果有什么问题,欢迎在下面留言讨论。
转载请注明出处:www.wizardev.cn
反编译之将脱壳后的dex文件重新打包成apk相关推荐
- android程序导入虚拟机,android项目打包成apk应用程序后部署到虚拟机上测试
一:打包成apk包 这个比较简单,如下 右键点击项目--> export --> android Project --> 选择密钥等信息 --> 填写密钥信息 --&g ...
- 360加固android app反编译,apk360加固脱壳
360加固保动态脱壳,360加固保带给我们的惊喜,360加固脱壳工具,apk360加固脱壳 360 加固后的 apk,在 arm 设备上首先会将 assets 目录下的 libjiagu.so 拷贝到 ...
- android 360加固 反编译,[原创]逆向360加固等dex被隐藏的APK
如果遇到apk中的lib文件夹中是这样的 基本没有dex文件可以反编译,这中的dex文件一般都是加密混淆压缩后放在so中啦. 但是软件要想运行就需要解出dex字节码然后加载到手机内存中,这样就可以在软 ...
- android apk 反编译,修改version后重新打包
1.需要工具: java运行环境 apktool.jar 下载地址:iBotPeaches / Apktool / Downloads - Bitbucket 2.反编译apk 将下载的apktool ...
- Android(三)——将程序打包成APK文件,进行APK签名以及反编译APK
文章目录 1. 签名的作用 2. Android Studio 如何打包签名 3. 反编译 APK 3.1 获取图片资源 3.2 获取 .XML 资源 3.3 获取代码资源 1. 签名的作用 Andr ...
- Android Apk反编译、修改资源、重新签名以及重新打包的详细讲解
在反编译之前先明确下,反编译别人的Apk不是件很道德的事情,毕竟这是别的程序员辛辛苦苦写出来的代码,所以说代码混淆这东西很重要,就是为了防止别人反编译.本文抱着学习的态度,在一些特殊情况下研究下怎么反 ...
- 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )
文章目录 前言 一.DexPrepare.cpp 中 rewriteDex() 方法分析 二.DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 ) 三.D ...
- 在eclipse中反编译并查看jar包的class文件,批量反编译
第一种:很方便,直接用F3或者ctrl点击查看. Eclipse反编译工具Jad及插件JadClipse配置 超傻瓜的教程: Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的 ...
- Java反编译工具-JD-GUI解决直接打开.class文件卡顿问题
场景 Java反编译工具JD-GUI目前是1.4.0 下载以及安装参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/84317 ...
最新文章
- 正确debug的TensorFlow的姿势
- 解决linux中Kipmi0进程对CPU使用率很高问题
- c#中页面之间传值传参的六种方法
- android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法
- Makefile文件编写规则
- Java笔记04-核心类库
- sprintf()函数
- 唐尼vr眼镜好吗_裸眼3DVR和全息投影有什么区别 他们之间谁更好一些
- python生成验证码_Python快速生成验证码
- 调试html代码的快捷键,chrome网页F12调试快捷键
- 谷歌开发者版和beta版_Google工具栏Beta,工具栏API和ComputerZen Google工具栏按钮
- 京东云开发者|探寻软件架构的本质,到底什么是架构?
- 2016级移动应用开发在线测试13-Location、Sensor Network
- NLP(自然语言处理)
- 考考你的眼力 又一张神奇的图片
- c语言输入平行四边形的图案,巧妙输入平行四边形的符号
- 股市投资实战的核心问题
- 《趣谈网络协议》学习笔记 DAY06
- lolm选中与技巧,不要急慢慢来,往后拉扯,因为可以躲掉技能,还可以钓鱼让对方因为追杀你,而失误心慌
- 治愈英文:I Did My Best Today(中英文)
热门文章
- RobotFramework操作API
- 激战服务器位置,《激战2》世界之战指南(选择服务器)
- java操作js文件_JS操作文件
- 裸服务器证书,使用SSH证书远程登陆你的服务器
- rest 接口怎么传list_如何设计一个优雅的RESTFUL的接口
- 【通知】有三AI项目研发组成员招收条件及可对接业务暂行方案
- 【杂谈】怎么使用有三AI完成系统性学习并赚钱
- 深度学习之路孤单吗?我们带你进组织!
- 中国工业脚轮行业前景展望及营销战略分析报告2021-2027年
- Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)