对反编译的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就是我们重新打包签名对齐后的文件了,现在把它安装到手机上

0 0
原创粉丝点击