Pages

2017-03-21

折腾电子词典系列(3)探索BlueDict的爆破问题

折腾电子词典系列(3)探索BlueDict的爆破问题

探索对象

截至目前,Android系统的BlueDict只有5.9.6可以同时找到原版和爆破版,非常适合研究“蠻荒搜神”是如何进行爆破的。

下面是原版和爆破版的校验和,通过Google搜索校验和应该可以下载到这两个apk:

5.9.6爆破版校验和:
BlueDict Pro v5.9.6 noAD by 蛮荒.apk
大小: 1277806 字节
MD5: 3F153CDA16111DC6290FD09B16CF3B5D
SHA1: 8A9BD723DEC233A5008D86E0FE993F582EE21415
CRC32: 2A54E87E

5.9.6原版的校验和:
BlueDict.5.9.6.apk
大小: 1478374 字节
MD5: 27082DAFFF4BD90DD54EBDF7A1136F14
SHA1: 48B62DDC5D2DA0F94F8F25FB0132540B6FBA37D4
CRC32: E3D6D084

探索工具

AndroidKiller_v1.3.1(md5:E066CD3D82CA67ED2EBED9B352033BCA),这个需要用md5搜索下载。

JRE、JDK和BCompare,这三个软件到各自官网下载就行。

使用前需要安装JRE和JDK,并设置系统环境变量:

CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

JAVA_HOME
C:\Program Files (x86)\Java\jdk1.8.0_121

PATH添加(注意不要覆盖默认的PATH)
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

注:假设JDK版本为1.8.0;其他版本应修正上述环境变量,以保证正确引用。

探索过程

使用AndroidKiller_v1.3.1反编译原版和爆破版;
然后使用BCompare比较反编译得到的源代码。

主要差别如下:























下面仔细看看被爆破的文件,左侧为原版,右侧为爆破版:















不懂爆破,下面仅仅是猜测:

  1. 最关键的,右侧新增了assets\CERT.RSA文件,应该和爆掉程序签名验证及其他防爆破验证有关。
  2. 类似的,original\META-INF\下的三个文件被爆破,应该也是搞定验证用的。
  3. 左侧的com文件夹被移除了,应该全是广告插件。
  4. lib和main文件夹下有几个smali被爆破,应该是从源代码上爆掉防修改验证、广告加载和部分受限功能延迟。
下面是一些具体被修改的smali的源代码对比截图:
main\MyDict.smali,似乎是声明了一个常量,目标为assets/CERT.RSA,应该是爆破防修改用的。
main\MainActivity.smali部分差异截图,可见很多被移除的invoke-static,应该是爆掉了加载广告的函数或子程序;还新增了几个goto,应该用于跳过某些验证吧。
main\FloatActivity.smali部分截图,也是很多用于加载广告的函数调用被爆掉了。

















































其他几个smali的修改,应该是爆破受限功能强制延迟10秒的提示。比如:
main\be.smali截图,看到sleep,猜测是爆破了那个受限功能强制延迟10秒的提示信息。

没有评论:

发表评论