如何反编译APK修改成自己想要的并打包运行

作者:Yogi

原理

利用解压缩工具获得源码的classes.dex文件;
通过dex2jar工具将classes.dex文件转换成jar包,并用jd_gui工具查看源码;
确定要改的位置后,在对应的smali文件中做修改;
修改完smali文件后再把smali文件打包成classes.dex,并通过压缩工具将原apk的classes.dex替换;
最后通过签名工具,重新生成新的可用的apk。
下面我们以y2.apk为apk名举例进行具体步骤的说明

步骤说明

通过解压缩工具获得源码的classes.dex文件

复制y2.apk文件,将复制的文件改名为y2.rar,通过Windows的WinRar工具,解压缩到y2文件夹,即可看到classes.dex文件

通过dex2jar工具将classes.dex文件转换成jar包

将上述的classes.dex文件拷贝到dex2jar.bat所在的文件夹,启动cmd命令行,执行如下操作
把dex文件转换成jar包

即可将classes.dex文件转换成jar包。如下图
生成jar包

通过jd_gui工具查看jar包,分析要修改的位置

如图
jar包内容
可以看到源码,虽然源码经过混淆有些难读,但是类名以及基本的函数,如onCreate\onDestroy等方法没有被混淆。在此处确定要修改的类以及函数之后,进入下一步。

获取源码的smali文件

启动cmd命令行,执行如下操作
获取smali文件
就会在D盘根路径下生成一个out文件夹,里面就是y2.apk源码的smali文件。

修改对应的smali文件

根据第3步分析得到的要修改的位置,找到对应的smali文件,进行修改与保存即可。

将修改后的smali文件转换成classes.dex文件

启动cmd命令行,执行如下操作
转换成classes.dex
通过smali-2.0.3.jar工具就能把smali文件所在的out文件夹转换成classes.dex文件。

替换classes.dex文件

如下图,通过winrar工具将y2.apk打开后,直接第6步生成的classes.dex拖到里面进行替换。
替换文件

签名打包,生成新的可运行的apk

启动cmd命令行,执行如下操作
签名操作
这样,就利用signapk.jar这个工具,以及密钥,就把y2.apk重新签名打包成了yy2.apk,至此符合我们要求的,可运行的apk就做好了。

使用工具下载

过程中用到的工具包:工具包下载

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值