【apk破解尝试之旅】-——apk文件的反编译与回编译

  前段时间玩了个手游,中途碰到一个副本迟迟无法攻破,又不没钱氪金,想着弄个破解版的,搜了半天没找到,于是决定自己动手干!

首先要对apk有个初步的了解,..apk文件是一种压缩文件,网上有种说法:apk文件就是zip压缩文件改个后缀名而来,于是尝试一下,把apk改后缀zip然后解压,打开一看,差点没笑出声,真有!该有的文件夹都有,挺像那么回事的。

于是随便改一点游戏参数,想着压缩一下改下后缀名就能玩了。 然而,,,,,,too young too simple!

这样得到apk文件死活安装不了 ! What??? 被骗了?? 于是检查了一下被我“”破解“”的apk文件,与源文件相比 变小了!!

我明明加了东西,为什么反而缩水了?想着可能是压缩方式的问题,于是试了用最好压缩试了一下。WQ更小了。。实在百思不得七姐咨询了一位大牛,apk安装包不是一般的apk文件,这种方法虽然可以查看部分源文件,且会丢失一些安装文件。想要破解需要进行反编译。Get!于是动手开干

1.如何查看源代码:

   工具下载:

Dex2Jar: https://sourceforge.net/projects/dex2jar/   (用于反编译java)

JDGUI :https://download.csdn.net/download/qq_37422933/10579043  (用于查看jar文件

将需要反编译apk的后缀格式改成zip,然后使用解压出来,如上图。其中的classes.dex就是我们需要进行反编译的部分。 
在cmd命令行中进入Dex2Ja文件夹,反编译命令:d2j-dex2jar.bat [classes.dex文件] 
成功后,会在Dex2Ja文件夹下生成classes-dex2jar.jar文件,这个jar文件就是反编译后的文件。

然后就可以安装JDGUI后用JDGUI打开classes-dex2jar.就可一查看java代码了

2.apk反编译

ApkTool: https://ibotpeaches.github.io/Apktool/   (反编译apk)新版本

(新版本可以进行反编译,但回编译时无法签名,因此无法安装回手机,下面会给出解决办法)

安装完成后,在cmd命令行中进入ApkTool的文件夹,反编译命令:apktool.bat d [apk文件]  -o  [输出文件夹] 即可。

成功后如下图

 

3.做点啥

得到了反编译后的文件夹,总该做点什么,我在这对assets(配置文件夹)里的一些游戏参数,至于具体怎么改,改什么,因游戏而异,大家自行摸索。

 4.apk回编译

https://download.csdn.net/download/qq_37422933/10579092  旧版本,包含回编译必须的签名文件

(用旧版本最燃无法被反编译会出问题,但回编译时没问题的且可以签名)

 

下载完成后,解压文件包,将需要回编译的文件夹复制到该目录下,重命名为APK,然后在cmd命令行中进入该文件夹,执行:apktool

弹出使用指南如下

按照指南安装   这个文件包里已有的这两个文件

如果安装过程出问题,--(找不到XXX文件夹)则按要求手动新建所需文件夹。一切完成后运行 3 回车就完成啦!!

进入build文件夹

这个已编译(已签名).apk就是最终的成品。建议先安装到安卓模拟器上测试一下再发到真机上运行。

 

 

ApkTool』简要介绍 提供1.3.5测试版源码。 此程序在其基础上完善并添加一些功能,此版本号定位2.0 最终版。 定为最终版的原因是支持动态加载最新的内置工具: ..\Bin\*.*目录下的所有工具如果有最新版本的,替换Bin目录内的程序即可应用最新版。 [注意:不要更改目录内的文件名,否则不会被加载。],判断是否使用最新版本的程序, 可以看启动日志中每个文件的路径。日志内容如下: 加载apktool.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\apktool.jar 加载aapt.exe的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\aapt.exe 加载signapk.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\signapk.jar 加载testkey.pk8的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.pk8 加载testkey.x509.pem的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin estkey.x509.pem 加载baksmali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\baksmali.jar 加载smali.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\smali.jar 加载dex2jar.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\dex2jar.jar 加载asm-debug-all.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\asm-debug-all.jar 加载commons-io.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\commons-io.jar 加载slf4j-simple.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-simple.jar 加载slf4j-api.jar的路径:C:\Users\Owner\Desktop\ApktoolGul\Bin\slf4j-api.jar ============================================================== 华丽的分割线 ============================================================== 使用说明: =========================================================== 使用环境:须安装 java,下载地址:http://www.java.com/zh_CN/ 1、反编译APK 拖拽APK程序到"反编译APK"按钮前的输入区,点击"反编译APK"按钮 2、重建APK 把第一步得到 文件夹 拖拽到"重建APK"按钮前面的输入区,点击"重建APK"按钮, 至此会自动生成已经签名好的"XXOO(已签名).apk" 3、签名 拖拽APK程序到"签名"按钮前的输入区,点击"签名"按钮,自动生成已经签名好的"XXOO(已签名).apk" 4、反编译dex 拖拽dex文件或odex到"反编译dex"按钮前的输入区,点击"反编译dex"按钮, 会在dex文件所在目录外生成一个与dex文件名相同的目录 5、重建dex 拖拽要重建的目录到"重建dex"按钮前的输入区,点击"重建dex"按钮,会生成与目录名相同的dex文件 6、dex转jar 拖拽dex文件或odex到"6、dex转jar"按钮前的输入区,点击"6、dex转jar"按钮, test.dex 会生成 test.dex.dex2jar.jar 文件 7、jar,class转java 拖拽保护class的目录,或.class文件或 jar文件到"jar,class转java"按钮前的输入区,点击"jar,class转java"按钮, 会生成相应的 java文件。 ========================== 内置软件版本: | apktool 1.4.3 | aapt r04 | baksmali 1.3.2 | smali 1.3.2 | dex2jar 0.0.7.9 | asm-debug-all 3.2 | commons-io 2.0 | slf4j 1.5.6 | jad 1.5.8e2 | ========================== ^_^ Enjoy! 2012.3.16 By:漏网之鱼 QQ:530747686
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值