安卓软件的破解工具已经很多了,这里我选择的是Apkdb,右键就可以完成所有操作。
实战要破解的是一款监听用户短信并截拦转发到指定手机号码上软件。
使用工具:Apkdb(可以自行搜索下载)
Smali2Java(非必须)
开始了!
要破解的文件,需要练手也可以联系我的QQ 451309839
Apkdb安装成功后右键会多出一组菜单(如果没有请检查是否安装成功),选择 使用 APKDB 反编译
出现以下窗口
我们使用默认的 1 就可以了。
成功!目录下多出一个与APK文件名相同名字的文件夹:
点击进入这个文件夹,就可以看到我们破解要操作的文件了:
res目录:同我们开发时的res目录,主要放一些资源文件。
smali目录:放置被反编译成smali文件的代码,关于smali可以百度一下,相当于安卓的汇编语言(这比喻可能不恰当)。
AndroidManifest.xml:这个跟开发中的是一样的。
apktool.yml:记录一些编译信息,回编译时用到。
我们的目的是修改这个软件所劫持短信后要发送的目标电话号码,这里就要用到Smali2Java工具了,当然如果你是大神可以直接阅读 Smali 代码的话也可以不用Smali2Java(不过大神也不用看小弟这篇文章了~,惭愧)
打开Smali2Java,在菜单处选择打开我们要破解的APK文件,也就是我们的1.apk
是不是很亲切?接下来就是分析Java代码了,看你功底如何。
这里稍微说一下我的情况,首先看MainActivity.java的代码,发现有可疑目标:
smsManager.sendTextMessage(SBr.phone, 0x0, text, 0x0, 0x0);
根据“语意”,初步判断出这是调用发送短信的代码,而SBr.phone自然就是号码了,至于是不是我们要改的那个号码还有待考证。
接下来在receiver目录下找到SBr.java,并找出目标SBr.phone:
为不侵犯作者权益,我给马赛克了,哈哈!
之后找个Base64编码工具,把这个字符串解码后我终于得到了号码!再结合更多的代码,确认这个就是我们要修改的目标号码。
接下来回到我们反编译出来的目录,进入 smali\com\byersu\vnfse\receiver ,发现 SBr.smali(没错,命名是一样的!),用文本编辑器打开:
其实smali的语法也很简单,大家去了解一下就能大概看懂了。
最后我把自已的号码经过Base64编码后,替换这个字符串就了以了,目标达成!
接下来是回编译,用的同样是Apkdb工具,回到工程目录(文件夹“1”所在目录),右键点击文件夹“1”,选择 使用 APKDB 回编译。
选择默认:1
选择Y,重新签名
搞定收工!:)
然后再次进入文件夹“1”就会发现多了什么,进去看看吧!!!
原来APK破解这么轻松,看来开发者要多注意防范了,这里只是举个栗子,仅供学习交流哦亲!