怎样反编译安卓app(如何反编译apk)
本篇文章给大家谈谈怎样反编译安卓app,以及如何反编译apk对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
如何反编译android应用以及重编译,签名和对齐优化
首先,了解一下我们为什么需要反编译apk
大部分情况下,是由于想本地化一款优秀的应用,才需要做这事儿;又或者进行少量的smali修改以达到想要的效果(如添加归属地,使3G版Nexus 7支持Wi-Fi热点)。
下面我们先准备运行环境和工具
建立工作目录,如.\workspace\apktoolbox (下面同样以此路径为例)
必不可少的JDK:Oracle Java下载,安装完成后把jdk-inst-path\bin添加到$PATH环境变量中
反编译和重编译工具apktool:Google Code下载,按平台下载(一个apktool-install-platform-ver-tar.bz2,一个apktoolver.tar.bz2,下载完成后解压至.\workspace\apktoolbox\bin
密钥文件,共4组。test/shared/media/platform,从android source中获取,分别对应不同共享用户ID时签名所需(查看应用AndroidManifest.xml第二行android:sharedUserId项 ),放到.\workspace\apktoolbox\bin下
test - 无android:sharedUserId项
shared - android:sharedUserId=android.uid.shared
media - android:sharedUserId=android.uid.media
platform - android:sharedUserId=android.uid.system
签名工具signapk.jar,放到.\workspace\apktoolbox\bin下
对齐优化工具zipalign(从android sdk中获取,在tools目录下),放到.\workspace\apktoolbox\bin下
准备工作完成
接下来我们就要开始工作了(以本地化工作为例)
把待反编译的apk放到.\workspace\apktoolbox\apks下
在命令行模式下进入.\workspace\apktoolbox\bin目录,输入以下命令进行解包(反编译)
apktool d ..\apks\apkfile.apk ..\apks\outdir
.\workspace\apktoolbox\apks\outdir\res下的values目录(英文原版)和values-rlocale目录(本地化)就是我们需要的对象。
本地化工作完成后,在命令行中输入以下命令进行重新打包(重新编译)
apktool b ..\apks\outdir
.\workspace\apktoolbox\apks\outdir\dist目录下会生成重新打包后的apk(未签名,未对齐优化)
重新打包完成后,在命令行中输入以下命令进行签名(根据实际情况选用密钥,这里以test密钥为例)
java -jar signapk.jar testkey.x509.pem testkey.pk8 ..\apks\outdir\dist\apkfile.apk ..\apks\apkfile_signed.apk
签名完成后,在命令行中输入以下命令进行对齐优化
zipalign -f -v 4 ..\apks\apkfile_signed.apk ..\apks\apkfile_zipaligned.apk
apkfile_zipaligned.apk就是我们最终需要的apk了。
完成
部分apk需要系统框架资源,没有的话在重新打包时会报错,这种情况下我们只需要先安装一下对应系统框架即可(从你目标ROM中把/system/framework/framework-res.apk提取出,放到.\workspace\apktoolbox\apks下)。在命令行中输入以下命令进行安装
apktool if ..\apks\framework-res.apk
如何反编译一个app
下载apktool所需文件:
a、 apktool1.5.2.tar.bz2
b、apktool-install-windows-r05-ibot.tar.bz2 (windows系统)
解压刚刚下载的文件,并将解压的文件放入C:\Windows目录下
启动控制台,输入apktool,回车可查看到apktool工具常用指令
新建一个文件夹,用于存放apk及待解压的文件,这里笔者将文件夹建在D:\apk目录,同时放入用于测试的android app包(test.apk)
控制台输入:apktool d D:\apk\test.apk D:\apk\test 进行反编译操作
中句话中“D:\apk\test.apk”指apk存放位置,“D:\apk\test”指反编译后文件存放的位置 反编译成功之后,进入D:\apk\test文件目录可以查看到反编译后的文件
如何反编译android应用并重新打包
android应用安装到手机的是一个apk文件。apk是可以用工具进行反编译并重新打包的。本文将介绍下如何用apktool对apk进行反编译并重新打包。工具/原料apktoolautosign方法/步骤首先我们新建一个android项目,里面只有一个MainActivity,而且主界面只会显示一个字符串:你好。下面,我们切换到这个项目生成的apk文件所在的目录,可以看到有一个hellodemo.apk。在命令行输入:apktoold-rhellodemo.apk。可以看到在当前目录下生成了一个hellodemo文件夹。进入到hellodemo\smali\com\example\hello,打开MainActivity.smali。找到:const-stringv1,"\u4f60\u597d",修改为:const-stringv1,"hello",然后在命令行输入:apktoolbhellodemohellodemo1.apk。这回重新打包成hellodemo1.apk。然后给新生成的apk进行签名。把这个apk拷贝到autosign的目录下面,然后切换过去,在命令行输入:java-jarsignapk.jartestkey.x509.pemtestkey.pk8hellodemo1.apkhellodemo.apk。步骤阅读把生成的hellodemo.apk安装到手机,可以看到主界面上已经显示的是hello,而不再是你好。说明反编译重新打包成功!
怎样反编译安卓app的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何反编译apk、怎样反编译安卓app的信息别忘了在本站进行查找喔。