前言
前段时间在网上冲浪奖励自己的时候发现了一款颜色软件,对于一个老色批来说这无疑是一件非常令人开心的事情,但好事不成双,这款软件和一般的颜色软件一样,没有充值会员每天有观看次数的限制,还有需要额外金币购买才可以看的视频,这无疑对于一个程序员来说令人难受,同样为了贯彻白嫖的理念,我们就将它破解。
这里年轻司机温馨提示:奖励虽好,可不能贪杯呦~
本篇不会上传任何附件资源,仅提供破解思路提供大家参考。
为了照顾新手,首先分享一下我使用的工具:
APK反编译工具 —— APKIDE(改之理),可在论坛的爱盘中下载
Vscode —— 代码编辑器
Smali2Java —— Vscode插件,用来将Smali代码转换为Java代码分析
MT管理器 —— 众所周知不介绍了,但此处仅用来查壳,虽然工具不错但感觉不如电脑方便
uTools Unicode转化工具 —— 真的转Unicode非常方便
如图所示,经过MT管理器查看加固状态,显示为未加固,所以说就不用进行脱壳处理(现在的颜色软件都这么猖狂吗?都不加个壳敷衍一下??),好了言归正传,既然没有加壳我们就进行下一步,分析破解需求。
在使用了半个小时的时间后我整理出了需要破解的地方。
破解无限观看次数(VIP功能)
破解金币视频(充钱才能看的功能)
接下来我们要分析下手位置,才能准确找到需要修改的文件
打开APP查看一个需要金币的视频,会弹出窗口提示:该视频需要消耗x个金币
所以我们下手就要从这里开始,打开ApkIDE进行反编译
非常顺利,成功反编译,拿到了重要的smali文件夹
在右侧搜索框内搜索关键词:该视频需要
非常遗憾,没有搜索的,我们尝试转换为Unicode编码后再搜索一遍
\u8BE5\u89C6\u9891\u9700\u8981
不出所料,果然搜索到了
搜索到后,在vscode中打开这个文件,转换为Java代码分析一下
成功在底下找到了这段弹出提示框的代码,找到这里后我们就要溯源寻找使用这个函数的类,同样我们将其中的 buyVideo 在 ApkIDE 中搜索
成功搜索出了有8个类调用了这个类中的buyVideo函数,我们在vscode中依次打开这些文件,依次转换为Java代码分析(防止通过包名找安装包,原谅我打厚码),这里我打开一个文件进行演示,其余7个文件修改方法类似。
看到Java代码,瞬间比阴间 Smali 要顺眼许多,我们分析一下这段代码,可以看到其中的 if 判断中出现了setStopPlay(true)和showSimpleDialog()这两个函数,通过小学英语知识就可以看出这是暂时视频和弹出提示的代码,所以这段将是我们替换的内容,下方 else if 的判断中有一处是跳转到了 buyVideo 函数,我们首次下手时就分析出了buyVideo()是弹出提示的代码,所以我们再往下看,下面else中的代码并没有任何调用弹窗之类的函数,所以可以断定这就是返回正常播放的代码,所以我们返回 Smali 代码,搜索关键词 “onSuccess” 找到这个函数。
根据基础的 Smali 知识,我们将 :cond_1至 :goto_0中间的代码复制,替换到 :cond_0 至 goto :goto_0 和 :cond_1至 goto :goto_0 的中位置,这样保存,接下来以同样的原理将搜索出来的几个文件,修改替换,最后我们在ApkIDE中编译再安装。
该内容转载自吾爱破解,更多内容请点击“阅读原文”