安卓反编译出来的代码如何修改重新生成APK

如题所述

反编译步骤:

    下载apktool 并设置环境变量

    命令行进入apk目录执行:apktool d xx.apk  (如果遇到一些错误说明apk做了防破解处理)

    执行成功后会生成xx文件夹,进入xx文件夹修改需要修改的内容,如果需要修改代码,进入xx\smali\里面,需要懂一些smali语法

    修改完后回到命令行,执行:apktool b xx  ,会在xx文件夹里面生成一个dist文件夹,里面的apk就是回编译的,这个apk是没有签名的

    下载网上的签名工具对apk签名,完了就可以安装了(如果你下载了源码或者sdk,里面自带一个signapk也可以签名)

追问

那怎么把smali文件编译成java代码,然后进行修改,修改后然后又编回smali文件

追答

smali文件可以转换成java文件,但是你修改java文件后是还原不到smali文件的,因为转换的这个java文件代码是不完整的,只能修改smali文件,如果要查看大概的代码,可以直接用解压缩软件打开apk,提取出classes.dex,有一个工具可以直接把dex转换成jar(dex2jar),然后用jd-gui直接打开生成的jar就可以看到源码了,因为加密和代码混淆,看到的源码是不完整的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-14
如果反编译后,想将分散的文件重新打包,需要用到 【 APK Tools 】 这个工具,此工具可以重新编译签名应用程序为APK。
个人建议,请不要经常破解他人的软件,保护他人知识产权,而且程序也有反二次编译的功能。

APKTool
APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持
第2个回答  2015-06-29
可以直接用APK编辑器修改APK的内容