前言:通过上一篇文章反编译之脱去乐固加固的壳,已经可以拿到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相关推荐

  1. android程序导入虚拟机,android项目打包成apk应用程序后部署到虚拟机上测试

    一:打包成apk包 这个比较简单,如下 右键点击项目--> export -->  android Project -->  选择密钥等信息  --> 填写密钥信息  --&g ...

  2. 360加固android app反编译,apk360加固脱壳

    360加固保动态脱壳,360加固保带给我们的惊喜,360加固脱壳工具,apk360加固脱壳 360 加固后的 apk,在 arm 设备上首先会将 assets 目录下的 libjiagu.so 拷贝到 ...

  3. android 360加固 反编译,[原创]逆向360加固等dex被隐藏的APK

    如果遇到apk中的lib文件夹中是这样的 基本没有dex文件可以反编译,这中的dex文件一般都是加密混淆压缩后放在so中啦. 但是软件要想运行就需要解出dex字节码然后加载到手机内存中,这样就可以在软 ...

  4. android apk 反编译,修改version后重新打包

    1.需要工具: java运行环境 apktool.jar 下载地址:iBotPeaches / Apktool / Downloads - Bitbucket 2.反编译apk 将下载的apktool ...

  5. Android(三)——将程序打包成APK文件,进行APK签名以及反编译APK

    文章目录 1. 签名的作用 2. Android Studio 如何打包签名 3. 反编译 APK 3.1 获取图片资源 3.2 获取 .XML 资源 3.3 获取代码资源 1. 签名的作用 Andr ...

  6. Android Apk反编译、修改资源、重新签名以及重新打包的详细讲解

    在反编译之前先明确下,反编译别人的Apk不是件很道德的事情,毕竟这是别的程序员辛辛苦苦写出来的代码,所以说代码混淆这东西很重要,就是为了防止别人反编译.本文抱着学习的态度,在一些特殊情况下研究下怎么反 ...

  7. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

    文章目录 前言 一.DexPrepare.cpp 中 rewriteDex() 方法分析 二.DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 ) 三.D ...

  8. 在eclipse中反编译并查看jar包的class文件,批量反编译

    第一种:很方便,直接用F3或者ctrl点击查看. Eclipse反编译工具Jad及插件JadClipse配置  超傻瓜的教程: Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的 ...

  9. Java反编译工具-JD-GUI解决直接打开.class文件卡顿问题

    场景 Java反编译工具JD-GUI目前是1.4.0 下载以及安装参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/84317 ...

最新文章

  1. 正确debug的TensorFlow的姿势
  2. 解决linux中Kipmi0进程对CPU使用率很高问题
  3. c#中页面之间传值传参的六种方法
  4. android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法
  5. Makefile文件编写规则
  6. Java笔记04-核心类库
  7. sprintf()函数
  8. 唐尼vr眼镜好吗_裸眼3DVR和全息投影有什么区别 他们之间谁更好一些
  9. python生成验证码_Python快速生成验证码
  10. 调试html代码的快捷键,chrome网页F12调试快捷键
  11. 谷歌开发者版和beta版_Google工具栏Beta,工具栏API和ComputerZen Google工具栏按钮
  12. 京东云开发者|探寻软件架构的本质,到底什么是架构?
  13. 2016级移动应用开发在线测试13-Location、Sensor Network
  14. NLP(自然语言处理)
  15. 考考你的眼力 又一张神奇的图片
  16. c语言输入平行四边形的图案,巧妙输入平行四边形的符号
  17. 股市投资实战的核心问题
  18. 《趣谈网络协议》学习笔记 DAY06
  19. lolm选中与技巧,不要急慢慢来,往后拉扯,因为可以躲掉技能,还可以钓鱼让对方因为追杀你,而失误心慌
  20. 治愈英文:I Did My Best Today(中英文)

热门文章

  1. RobotFramework操作API
  2. 激战服务器位置,《激战2》世界之战指南(选择服务器)
  3. java操作js文件_JS操作文件
  4. 裸服务器证书,使用SSH证书远程登陆你的服务器
  5. rest 接口怎么传list_如何设计一个优雅的RESTFUL的接口
  6. 【通知】有三AI项目研发组成员招收条件及可对接业务暂行方案
  7. 【杂谈】怎么使用有三AI完成系统性学习并赚钱
  8. 深度学习之路孤单吗?我们带你进组织!
  9. 中国工业脚轮行业前景展望及营销战略分析报告2021-2027年
  10. Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)