对反编译的Android apk 并再次打包
来源:互联网 发布:淘宝卖家怎么上返利网 编辑:程序博客网 时间:2024/05/08 13:54
声明该文章直供学习参考重点内容
反编译首先需要以下工具
dex2jar 这个工具用于将dex文件转换成jar文件
下载地址:http://sourceforge.net/projects/dex2jar/files/
jd-gui 这个工具用于将jar文件转换成java代码
下载地址:http://jd.benow.ca/
apktool 这个工具用于最大幅度地还原APK文件中的9-patch图片、布局、字符串等等一系列的资源。
下载地址:http://ibotpeaches.github.io/Apktool/install/
1. 获取apk的 资源 图片
把 apk 文件改名为 .zip ,然后解压缩 , 得到其中的
res/drawable直接拖拽出来即可。
2.获取xml文件信息
apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,DOS在cmd下进入apktool所在路径,然后输入apktool d “XXX1” “XXX2”,XXX1指的是你要反编译的apk文件,XXX2指的是反编译后文件存放的路径,
如:apktool d “C:/taobao.apk” “C:/taobao”
3 .反 编译 dex获取 Java 源代码
Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个 开源 工具:dex2jar,下载地址: http://code.google.com/p/dex2jar/ 。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过 jd-gui工具把jar文件反编译成Java源文件,
最重要的就是找到smail文件里面你要修改的信息 ,然后我们就可以从新打包啦
把反编译后的Demo文件夹重新打包成APK吧,其实非常简单,只需要在cmd中执行如下命令:
apktool b Demo -o New_Demo.apk
目前这个New_Demo.apk还是不能安装的,因为它还没有进行签名。那么如果这是别人的程序的话,我们从哪儿能拿到它原来的签名文件呢?很显然,这是根本没有办法拿到的,因此我们只能拿自己的签名文件来对这个APK文件重新进行签名,但同时也表明我们重新打包出来的软件就是个十足的盗版软件。
有了签名文件之后在cmd中执行签名命令就可以进行签名了,命令格式如下:
jarsigner -verbose-sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名
签名的别名 :是生成文件的 Alis 名字
签名之后的APK文件现在已经可以安装到手机上了,不过在此之前Android还极度建议我们对签名后的APK文件进行一次对齐操作,因为这样可以使得我们的程序在Android系统中运行得更快。对齐操作使用的是zipalign工具,该工具存放于/build-tools/目录下,将这个目录配置到系统环境变量当中就可以在任何位置执行此命令了。命令格式如下:
zipalign 4 New_Demo.apk New_Demo_aligned.apk
其中4是固定值不能改变,后面指定待对齐的APK文件名和对齐后的APK文件名。运行这段命令之后就会生成一个New_Demo_aligned.apk文件
这个New_Demo_aligned.apk就是我们重新打包签名对齐后的文件了,现在把它安装到手机上
- 对反编译的Android apk 并再次打包
- android反编译及再次打包
- Android APK的反编译和重新打包
- apk的反编译与重新打包并签名
- 对某日头条apk的反编译和二次打包
- android apk反编译打包签名
- android apk反编译打包签名
- android apk反编译打包签名
- Android apk打包及反编译
- 反编译apk文件重新打包并签名
- Android项目打包apk及apk的反编译,xml的反编译
- Android Apk 文件反编译和重新打包的过程分析
- Android Apk 文件反编译和重新打包的过程分析
- Android对apk源码的修改--反编译+源码修改+重新打包+签名【附HelloWorld的修改实例】
- Android对apk源码的修改--反编译+源码修改+重新打包+签名【附HelloWorld的修改实例】
- Android对apk源码的修改--反编译+源码修改+重新打包+签名【附HelloWorld的修改实例】
- android apk的反编译
- 反编译Android的apk
- ORA-01017: invalid username/password; logon denied
- C#动态选择调用某个指定内部函数
- 【Android】录音机
- Java中String类的方法及说明
- Laravel框架学习(RESTFul用法)
- 对反编译的Android apk 并再次打包
- Android 反编译
- Java Socket
- windows下cmd命令行显示UTF8字符设置(CHCP命令)
- bzoj3527 力 fft
- Device eth0 does not seem to be present, delaying initialization(vmware 拷贝引起)
- 深入浅出RxJava(二:操作符)
- 字节流与字符流的区别
- Android开发之SharedPreferences数据存储与提取