1 / 12
文档名称:

【Android 原创】安卓逆向之给激活码添加一个「口令」.doc

格式:doc   大小:37KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

【Android 原创】安卓逆向之给激活码添加一个「口令」.doc

上传人:学习好资料 2021/7/27 文件大小:37 KB

下载得到文件列表

【Android 原创】安卓逆向之给激活码添加一个「口令」.doc

相关文档

文档介绍

文档介绍:【Android 原创】安卓逆向之给激活码添加一个「口令」
【Android 原创】安卓逆向之给激活码添加一个「口令」spguangz·2016-01-20 13:04这次要破解的软件叫Stellio Music Player,是一款手机音乐播放器。
它的破解点是激活码。用到的工具:
用Androidkiller反编译和修改代码,由于激活码是网络验证,所以用Charles抓包分析。一、激活码破解篇
本篇的目的:你输入任意激活码都能激活成功。
这个软件有签名校验,先去除。
方法是常用的方法了,详见: -279542-1-:invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v0 const/16 v3, 0x40 const-string p1, '/sdcard/' //自定义验证包的路径 invoke-virtual {v0, p1, v3}, Landroid/content/pm/PackageManager;->getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; //把getPackageInfo改为getPackageArchiveInfo move-result-object v3
.line 128 sget-boolean v0, Lru/stellio/player/Utils/m;->a:Z if-nez v0, :cond_3 iget-object v0, v3, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature; //读取签名 //省略

自校验去掉之后,我们进去看看,发现软件只有10天试用期。
买买买!点击购买,会弹出一个弹框:

如图,它有2种解锁完整版的方式:


这里选择激活码。输入任意激活码,会有错误提示:

由于我们要求输入「任意」激活码都能激活成功,所以先去掉格式的限制。

按图索骥,最后在smali里删掉一个跳转即可,比较简单就不贴代码了。去掉激活码格式的限制后,继续往下走。
由于是联网激活,所以抓包看一下吧。
我输入“呵呵”,然后点击激活。
一方面app上会提示激活码无效,另一方面Charles上显示以下数据:

也就是说,输入的key如果是无效的,发送到服务器上,会验证失败,然后返回error。先把链接复制下来,搜索看一下。
搜索
.method public static a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z .locals 6 .prologue const/4 v5, 0x0 .line 47 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V .line 49 new-instance v1, Lru/stellio/player/Helpers/i; const-string v2, 'key' invoke-direct {v1, v2, p0}, Lru/stellio/player/Helpers/i;->(Ljava/lang/String;Ljava/lang/String;)V invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 50 new-instance v1, Lru/stellio/player/Helpers/i; const-string v2, 'android