前言
在ItFunz上的一个软软推荐贴子里看到一个一键锁屏软件--lock now free. 感觉还不错,就是用了一段后, 每次用软件锁屏后, 再打开都显示软件设置界面. 在网上找原因, 有人说是因为免费版的原因, 但又找不到已付费版. 因此就想试着把它破了.
不懂java,也从未接触过android程序. 好在C风格的语言差别也不是很大,又在网上搜一些adroid程序开发的文章,对android程序的结构有了个大概的了解. 没想到最后竟然在连Hello World都不会写的情况下破解成功......
破解后的apk: https://cid-9fb2801de5575b38.office.live.com/self.aspx/Adroid/LockNowFree.apk 有需要的直接拿去用吧
-----------------------------------------------------------
欲善其事,先利其器, 先说一下要用到的的软件:
1. dex2jar: http://code.google.com/p/dex2jar/
2. jd-gui: http://java.decompiler.free.fr/?q=jdgui
3. apktool:http://code.google.com/p/android-apktool/
4.apk签名工具: .net版 java版 (原工具从itfunz论坛下载,里面带一些和apk签名无关的东西,体积太大)
///
总体思路:
首先,我们要用dex2jar把classes.dex反编译成jar文件, 然后用jd-gui打开反编译成出的jar文件, 找出需要修改的地方. 最后用apktool反编译整个apk包, 修改刚才在jd-gui中找出的修改点, 再用apktool重新编译, 编译后用签名工具签名,就可以安装了.
开始破解:
1. 先把apk解压, 把classes.dex复制到dex2jar的文件夹中(我懒得到路径才这么干 的^^)
2. 打开命令行, 进行dex2jar文件夹. 输入下面的命令把反编译生成jar文件:
dex2jar.bat classes.dex
完成后, 文件夹中会多出一个classes.dex.dex2jar.jar的文件.
(想省事的话,也可以把classes.dex拖动到dex2jar.bat上,效果是一样的,我就是这么干的,就是如果出错了,看不到错误)
程序分析完了,下面开始修改.
4. 把apk文件(lock.apk)复制到apktool所在文件夹中. (....同样是懒得打路径)
5. 打开命令行, 进行apktool文件夹. 输入下面的命令把反编译apk文件:
apktool.bat d lock.apk lock
这条命令的意思是把lock.apk反编译并输出到Lock文件中. 完成后, 会多出一个lock文件夹.
7. 修改已经完成了,接着,输入下面的命令,重新编译生成apk文件.:
apktool.bat b -f lock lockNew.apk
这个命令的意思是把Lock文件夹的内容build成lockNew.apk, -f是强制重新编译, 不加这个参数也可以. 命令完成后会在apktool的文件夹中生成lockNew.apk
8. 最后只要把lockNew.apk用签名工具重新签名就可以安装了. 这个也是完全的UI操作,非常简单,就不说了
由于本人对android很不熟悉,不足之处请多指教, 如果有不明白也可以留言,大家一起探讨.