apk反编译

学习Android软件开发有一段时间了,为了记录自己学习的成果,今天记录一下最近破解Dock4Droid.apk的license的过程。
1.首先下载Dock4Droid.apk,将后缀名改成zip.即Dock4Droid.zip
2.从Dock4Droid.zip提取其中的classes.dex文件。
3.下载工具dex2jar
4.把 class.dex 拷贝到 dex2jar.bat 所在目录,直接拖动 class.dex 到 dex2jar.bat,生成 classes.dex.dex2jar.jar。
5.运行 JD-GUI工具(绿色软件),打开上面的 jar 文件
6.看到License类是做限制的代码,可以查看其它引用此类的代码,并且从文件名可以知道,只要将方法isLocked的返回值改成return false;    reevaluate方法置空就行。
7.下面将要修改代码,由于android使用的是Dalvik VM不是oracle的vm。并且修改的内容比较简单,所以打算直接修改
8.下载baksmali.jar及smali.jar两个jar文件
9.将classes.dex复制到baksmali.jar同文件夹下,进行java -jar baksmali.jar -o classout/ classes.dex
10.查看生成文件夹里的License.smali文件可以看到。
11.只要修改isLocked及reevaluate方法,即可。
12.用eclipse 编写了简单的代码。
13.按照对应关系直接修改License.smali
14.在smali.jar所在文件夹执行java -jar smali.jar classout/ -o classes.dex就将刚才修改的代码直接编译成classes.dex文件了。
15.将生成的classes.dex复制到apk文件里,
16.下载android签名工具。里面有signapk.jar, testkey.pk8, testkey.x509.pem文件
17.用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
18.将apk文件复制到signapk.jar的同文件夹里,执行java �Cjar signapk.jar platform.x509.pem platform.pk8 Dock4Droid.apk Dock4Droid _crack.apk
19.生成的apk文件可以正常使用了。
简单的破解就是这样子了,如果有什么疑问,请联系
不过最近听说有一个防止apk破解反编译的爱加密挺火的,听说是防止破解,重新打包之类的,有时间研究一下


你可能感兴趣的:(apk反编译)