吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3120|回复: 39
收起左侧

[Android 原创] 记一次蓝狐视频系列的逆向

  [复制链接]
Him8848 发表于 2023-11-28 23:58
本帖最后由 Him8848 于 2023-11-29 14:48 编辑

工具

本次在PC端实现,但PC端的解包工具修改并未有Android端的管理器好用,故在模拟器完成

用到的工具有MT管理器、算法助手、jadx

正文开始

过root检测

先注明一下,修改前先过签名校验(MT管理器或者NP管理器都有提供这个一键功能),原因看文章就会知道了

(1)先试试直接打开APP,发现闪退(注明,设备已root)

(2)进算法助手拦截闪退看看,顺便定位闪退位置(这里提一下,定位是修改的基础,你只有定位到了修改点才能修改,所以掌握定位手法是逆向比较重要的一环)

image-20231128125542646.png

(3)点右上角打开软件,发现卡住在启动界面

image-20231128130058810.png

(4)进算法助手查看拦截日志,发现在启动类的initData(初始化数据)方法里面执行了finish
image-20231128130156358.png

image-20231128130303145.png

(5)接下来将安装包拉到jadx里面解包并搜索这个类名定位方法(MT类名搜索一样的,不过没有我这登录转不了Java)

image-20231128155120498.png

image-20231128155856940.png
image-20231128155943284.png
(6)MT就转Java,我这jadx就直接看这个闪退的方法,发现很明显的有两个判断,这里有两个选择

1.把这两个if语句删除,让它直接跳过这两个finish从而进入软件,但是你不能保证后面在其他活动里面它再次调用的时候它还是false

2.将这里的if语句的判断方法赋值false,后面再检测也将会是false

image-20231128155458321.png
(7)安卓ctrl键并点击第一个判断方法跳转查看

image-20231128160726901.png

发现这里第一个判断方法是由两个方法组成,两个任意一个返回true将会返回true,所以要将这两个方法都返回false

所以,依旧是按住ctrl键跳转,发现是这个方法,通过阅读发现它循环这几个路径查看是否有su文件,这个是常见的root检测手段

所以第一个finish是用来检测root的

image-20231128160941766.png

跳转另外一个方法,通过阅读代码可以判断依旧是root检测的代码

image-20231128161354298.png

接下来用MT管理器进行修改

找到initData方法并找到第一条if判断的是v0,并且v0调用的方法是返回一个布尔值,故跳转这个方法

image-20231128161704199.png

跳转到后发现确实和之前分析的一样,拥有两个返回布尔值的方法,也就是检测root的那两个方法,两个方法跳转并更改

image-20231128161859594.png

跳转第一个方法

image-20231128162023330.png

发现返回有两种可能,一个是v1,一个是v0,v1上面看是赋值0,所以只需要改v0这个返回结果为0就实现了都返回false了,不清楚这样改的意义的可以改完以后转Java查看一下

image-20231128162250105.png

改成这样

image-20231128162333161.png

然后跳转第二个方法

这个返回就更明显了,直接就是v0,直接将前面的v0赋值0就OK了

image-20231128162524012.png

改成

image-20231128162546483.png

这样这两个方法都返回false了,所以这个方法也会返回false,也就是过了root检测了,正常root闪退手机就能进去了

image-20231128162650538.png

过虚拟机检测

(1)过完root检测我重新打包安装并打开该软件,发现依旧闪退,而且闪退位置依旧是那个位置,这不得不怀疑是第二个finish

image-20231128163224874.png

(2)如之前操作并跳转第二个判断方法

image-20231128163340904.png

发现有多个判断条件

image-20231128163413564.png

让我们逐个查看

首先看第一个

image-20231128163523807.png

该方法首先检查了一系列与模拟器相关的特征,例如设备的型号(Build.MODEL)、制造商(Build.MANUFACTURER)、硬件信息(Build.HARDWARE)、产品信息(Build.PRODUCT)、串号(Build.SERIAL)等。如果其中任何一个特征满足模拟器的特征,则将标记为模拟器环境,并且返回true,这个很明显是一个虚拟机判断的方法。

我们接着看下面几个方法

image-20231128164117363.png

这个方法是用于检测特定条件的私有Java方法。

image-20231128164205042.png

这个方法是用来检查设备是否支持计步器传感器。

image-20231128164015915.png

这个方法是用于检查当前设备的 UI 模式是否为汽车模式。

这些方法通过大致判断都是用于检测你现在的环境是否是真机环境,不是真机环境将会闪退。

所以我们依旧进入MT管理器进行修改这些方法返回false值,实现过虚拟机检测

image-20231128170831634.png

剩下一个布尔值的方法,直接跳转

image-20231128171122214.png

将这几个都改成false

image-20231128171241676.png

第一个方法有三处是返回的,将对应返回的寄存器赋值0就好

image-20231128171606568.png

第二个方法照样是直接赋值0就好,将红框里的赋值0

image-20231128171731400.png

第三个方法也是很明显有一个是返回true的地方,直接赋值0就好

image-20231128171949933.png

第四个方法依旧是一样赋值就全部赋值完成了

image-20231128172054936.png

(3)保存打包安装并打开,成功进入界面,不过就是广告有亿点点多

image-20231128172250196.png

去广告

(1)首先,点开软件会有一个开屏广告,这里会有一个活动跳转,那广告肯定是在两个活动的衔接代码之前,这样就可以定位广告代码在哪个类里面

(2)打开MT管理器的活动记录器来记录软件活动记录,并打开软件进行活动记录,发现一个很明显的广告标识

image-20231128223225229.png

(3)在jadx里面搜索这个类名并分析一下

image-20231128223430158.png

点进去发现有几个可疑的字眼

image-20231128223557457.png

点击这些可疑字眼标记颜色看看在这个类哪里使用了,发现这个广告ID是通过一个类获取的,并且是在这个initData(初始化数据)的方法里面,所以可以尝试不给正确的广告ID实现广告未初始化达到去广告的效果

image-20231128223843642.png

(4)进入MT管理器来修改ID来尝试是否有效

image-20231128224247676.png

image-20231128224418106.png

image-20231128224358934.png
这里发现还有一个方法,返回广告资源ID的,直接给他也赋值-1

image-20231128224544765.png
(5)保存一下退出试试发现启动页广告和软件内广告都没有了,但是开始播放视频的时候却是要求你看广告

(6)这里有一个推广机制,通过推广就能免除这个看广告的过程,所以可以通过这个突破点来实现去广告

(7)搜索推广这个字符串

image-20231128230622069.png
经过我逐个排查,选择最后一个发现有一个免广告至...,并且这里有个明显的getIs_vip方法,就可以判断这里是关键位置了
image-20231128230845918.png

这里赋值0将显示没有免广告权限,并且下面等于1将传一个true方法过去,所以修改大致就是将这个getIs_vip赋值1,我们去MT管理器更改一下测试一下结果

image-20231128231256503.png

果然没有那个看广告才能看视频的限制了,但是视频播放不出来,这是签名校验导致的,这是试出来的结果,所以我先注明了先过签名校验,去广告部分到此告一段落了

image-20231128231438217.png

番外 去除V*N检测

image-20231128233308834.png
(1)jadx直接搜索这个关键字,在资源处搜索到一处资源文件,那么弹出的必定用到这个xml文件

image-20231128233409765.png
(2)直接搜索这个xml文件的文件名
image-20231128233633728.png

这个方法挺眼熟,在一开始finish的时候就碰到过,查看其调用发现还真的是在那里
image-20231128233811221.png

那就如之前检测ROOT和虚拟机的方法一般改这个的判断结果为false就好

image-20231128233909053.png
跳转过去,分析一下语句都是VN检测的,那就修改这几处为false就能实现过VN检测了

image-20231128234716779.png
(2)去MT管理器改一下,尝试一下是否成功

image-20231128234859200.png

image-20231128234754559.png

image-20231128234829500.png

image-20231128234845310.png

image-20231128234933612.png
完美进入

图省事的这里写有现成的Hook模块

点击这里

免费评分

参与人数 10威望 +1 吾爱币 +30 热心值 +10 收起 理由
funwell + 1 + 1 谢谢@Thanks!
31213610 + 1 + 1 我很赞同!
hehehero + 1 + 1 热心回复!
吾乃齐天大圣 + 1 + 1 虽然看着有点晕,但是肯定很牛B!
sonh + 1 + 1 谢谢@Thanks!
正己 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
timeni + 1 + 1 用心讨论,共获提升!
漁滒 + 2 + 1 我很赞同!
willbe001 + 1 + 1 我很赞同!
佚名RJ + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

31213610 发表于 2023-12-5 08:41
Him8848 发表于 2023-12-5 00:24
去除签名校验应该是一开始就去除的,而不是到了改完才去除

就是别的都能完成,他这个去除签名校验第一步做的时候就通过不了,但这个软件好处是不能通过校验也可以做其他的测试。校验我是好几个办法都试了都不行,但后面的去广告和VIP都学会了。
 楼主| Him8848 发表于 2023-11-29 16:50
漁滒 发表于 2023-11-29 16:45
这个app的检测点也太多了吧

主要是这样能应对多种过检测手段,这里有个方法能防算法助手过VPN检测,虽然那个方法已经被弃用了
Hmily 发表于 2023-11-29 11:50
图片没上传,无法显示,处理一下吧,还有禁止私信留联系方式,别诱导了,编辑一下签名。
 楼主| Him8848 发表于 2023-11-29 12:07
Hmily 发表于 2023-11-29 11:50
图片没上传,无法显示,处理一下吧,还有禁止私信留联系方式,别诱导了,编辑一下签名。

收到,马上整改
hanghaidongchen 发表于 2023-11-29 16:22
好像还是之前的套壳,这个系列还没挂啊
 楼主| Him8848 发表于 2023-11-29 16:44
hanghaidongchen 发表于 2023-11-29 16:22
好像还是之前的套壳,这个系列还没挂啊

这个系列天天有人用呢,哪可能挂这么快
漁滒 发表于 2023-11-29 16:45
这个app的检测点也太多了吧
 楼主| Him8848 发表于 2023-11-29 16:51
这里还有个剪切板忘记写了,有空再补一下
 楼主| Him8848 发表于 2023-11-29 16:59
漁滒 发表于 2023-11-29 16:45
这个app的检测点也太多了吧

检测多应对多过检手段
游不动 发表于 2023-11-29 17:56
跟着学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表