apk解包+修改源码+重新打包修改Android端app教程修改apk
⽂件教程
修改之前⼀定要先安装java开发环境,不会装的去⾃⾏百度。⽂章较长,耐⼼阅读。
⼀直在做Android应⽤开发,但对于从⾃⼰⼿中输出的apk包,了解并不是很深。最近想研究⼀下,消除下⾃⼰的⼀些技术盲点。
好吧,废话少说,先切⼊主题。这篇⽂章主要介绍如何获取apk包中的dex⽂件,并简单修改⾥⾯的源码,再重新打包⽣成apk⽂件。
下⾯提供对HelloWorld.apk的解包,修改源码,重新打包的过程。
1 需要⽤到的⼯具:
baksmali:把dex⽂件转换成smali⽂件的⼯具(dex⽂件⽆法修改,要想修改源码,必须把把dex⽂件转换成smali⽂件)
smali:把smali⽂件转换成为dex⽂件的⼯具(修改完smali⽂件,⾃然需要把它还原到最初的dex⽂件)
signapk.jar :对apk进⾏签名(没经过签名的包最终会安装失败,提⽰“解析程序包出现问题”)
⼯具在⽂章最后会提供下载链接。
2操作步骤:
a 解压apk⽂件,(把apk的后缀名改为zip,⽤普通的解压⼯具即可,winrar或者7zip)
b 使⽤baksmali⼯具将classes.dex转为smali⽂件,在cmd窗⼝输⼊:java -jar baksmali-2.0.3.jar -x classes.dex
执⾏完后会⽣成out⽬录,⽬录结构跟源码相同,在对应⽬录下查对应的smali⽂件。如果不到,把整个out⽂件夹放到编辑器⾥搜索即可。
如图,到"hello world"字符串,把它修改为"modify successful" ,ctrl+s保存后关闭⽂件。
android简单教程c 使⽤smali-2.0.3.jar⼯具把smali⽂件转为dex⽂件,cmd中输⼊命令: java -jar smali-2.0.3.jar -o classes.dex out
执⾏完后会⽣成并替换掉根⽬录下的classes.dex⽂件,这样就修改成功了。
d ⽤⽣成的新的classes.dex⽂件替换掉原先HelloWorl.apk解压出来的classes.dex⽂件,并⽤压缩⼯具把这些⽂件压缩为HelloWorld.zip,并把zip后缀改为apk。
此处试验过压缩成为HelloWorld.rar,然后改为apk是不可以的。因为在签名阶段会报错。
此时的apk包⽆法正常安装,提⽰解析程序包错误。(原因是只有签名包才能正常安装)
e 使⽤签名⼯具对apk进⾏签名,把apk拷贝到资源根⽬录下的sign_tool⽬录,cmd中输⼊命令:
java -jar signapk.jar platform.x509.pem platform.pk8 HelloWorld.apk Signed.apk
执⾏完后会在该⽬录下⽣成Signed.apk⽂件,这个⽂件就是最终的⽂件了
安装后试验成功,HelloWorld字符串已被成功替换。因为我们只是做简单的修改,所以很容易。假如对⼤程序做⽐较复杂的修改,那就没那么容易了。⼤家有兴趣的可以尝试下,也可以研究下smali的语法。
⼯具链接如下:
密码:0m4w
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论