您的位置:首页 > 移动开发 > Android开发

Android反编译

2016-01-12 23:36 453 查看
在工作中需要用到将apk反编译替换smail文件重新打包apk,所以整理一下自己通常的两种反编译方式:

1.使用ApkTool工具直接解包:

地址:http://ibotpeaches.github.io/Apktool/


一般解包时候需要的文件有以下几个:



然后在cmd下进入对应的路径,进行解包:



此时成功之后,就可以去对应的文件夹下面查看资源以及smail文件了:



(补充:

但是有时候可能有时候会解包失败,之前一直以为是ApkTool版本问题,因为确实比如用2.0.0版本解包失败,但是换成2.0.1版本就可以了,一直不知道是什么原因,后来为了方便,下载了不同版本的ApkTool,然后在解包的时候,python脚本遍历使用不同版本的ApkTool工具,后来看了一下郭霖的博客,是因为之前使用过ApkTool的老版本进行了解包,然后ApkTool会在C:\Users\Administrator\apktool\framework下面生成一个1.apk缓存文件,将这个缓存文件删除,就可以了!)

如果要替换资源的话,可以直接替换,比如换icon或者某一个资源图都可以,如果是换smail文件比较困难,但是由于之前是提供三方jar包给别人用,所以别人如果调用都比较清楚,自己将要替换的smail路径也知道在哪里,所以很方便,比如要替换smail文件,将新的Library的src路径改成跟被解压包的smail路径一致,然后使用工具将java文件编译为smail文件,直接替换,再用ApkTool压缩包就可以了,当然,扯远了。

使用ApkTool压缩包也很简单:





但是这个apk不能安装,必须签名才行:

首先创建一个keystore文件:(注意在cmd下面一定要以管理员身份运行)

keytool -genkey -v -keystore demo.keystore -alias androiddebugkey -keyalg RSA -validity 10000
-keystore demo.keystore 证书库名称(可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个)
-alias androiddebugkey 证书的名称






然后进行添加签名:

jarsigner -verbose -keystore debug.keystore -storepass 123456 -keypass 123456 -signedjar new_2_signed.apk  new_2.apk androiddebugkey




再使用Zipalign进行对齐:

zipalign 4 New_Demo.apk New_Demo_aligned.apk


注意:4是固定值,zipalign位于SDK/build-tools/version下面

(2).使用dex2jar,将apk文件解压,拿到classes.dex文件

dex2jar地址:https://sourceforge.net/projects/dex2jar/files/

关于如何使用ApkTool查看更新有关apk包的信息:

http://blog.163.com/xiexueyong1987@126/blog/static/126267342201101123940388/

1、查看 keystore

$ keytool -list -v -keystore debug.keystore



2、查看apk中的keystore文件的md5值:



4、给一个空白包签名:

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]
说明:
jarsigner命令格式:-verbose输出详细信息 -keystore密钥库位置 -signedjar要生成的文件 要签名的文件 密钥库文件
keystorePath参数代表keyStore的绝对路径,如D:\keystore
apkOut参数代表签名后的apk路径,如D:\signed.apk
apkin参数代表在腾讯应用中心下载的未签名apk,默认名称为tap_unsign.apk
alias参数代表签名用的alias名称(创建keyStore时所填写),如timdong
示例:
$ jarsigner -verbose -keystore debug.keystore -signedjar test2.apk tap_unsign1.apk timdong
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: