|
|
本帖最后由 -if-OL 于 2025-8-18 22:33 编辑
分享一下关于我目前破解明日学院的进度,我修改了关于游客模式观看视频的上线,并且修改了关于VIP视频解析前VIP判断的逻辑
软件在这里
大佬可以完全先拿来练练手,然后看我具体分析
当我们打开软件并用游客模式观看视频的时候会弹出toast窗口
我们可以借助这个toast窗口找到一点破解思路
在mt上搜索字符串游客
刚好对应上电子代码的教程视频,书籍代码的教程以及有关正常界面上的教程视频,我们需要的自然是VideoMediaPlayPage里的内容,转Java看一下
目前办法很简单是要把这个判断跳过就行了如:
- private void initVideoMeida() {
- if (LibsChecker.checkVitamioLibs(this)) {
- this.spVideo = getSharedPreferences("video", 0);
- playVideoLimit(null);
- }
- }
复制代码
也就是删去smali里的
- const-string v4, ""
- iget-object v5, p0, Lcom/mingrisoft_it_education/VideoMedia/VideoMediaPlayPage;->userId:Ljava/lang/String;
- invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v4
- if-eqz v4, :cond_2
- iget-object v4, p0, Lcom/mingrisoft_it_education/VideoMedia/VideoMediaPlayPage;->spVideo:Landroid/content/SharedPreferences;
- const-string v5, "isWatch"
- invoke-interface {v4, v5, v6}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
- move-result v4
- invoke-static {v4}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
- move-result-object v2
- iget-object v4, p0, Lcom/mingrisoft_it_education/VideoMedia/VideoMediaPlayPage;->spVideo:Landroid/content/SharedPreferences;
- const-string v5, "watchDate"
- const-string v6, ""
- invoke-interface {v4, v5, v6}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
- move-result-object v3
- invoke-static {}, Ljava/text/DateFormat;->getDateInstance()Ljava/text/DateFormat;
- move-result-object v1
- new-instance v4, Ljava/util/Date;
- invoke-direct {v4}, Ljava/util/Date;-><init>()V
- invoke-virtual {v1, v4}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
- move-result-object v0
- invoke-virtual {v2}, Ljava/lang/Boolean;->booleanValue()Z
- move-result v4
- if-eqz v4, :cond_1
- invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v4
- if-eqz v4, :cond_1
- const-string v4, "您是游客,游客一天只能看一个视频"
- const/4 v5, 0x1
- invoke-static {p0, v4, v5}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
- move-result-object v4
- invoke-virtual {v4}, Landroid/widget/Toast;->show()V
- goto :goto_0
- :cond_1
- invoke-virtual {p0, v0}, Lcom/mingrisoft_it_education/VideoMedia/VideoMediaPlayPage;->playVideoLimit(Ljava/lang/String;)V
- goto :goto_0
- :cond_2
复制代码
接着可以搜索在这个包里搜索'' 您没有权限观看此视频,请去购买!"找到了关于VIP的两个判断逻辑,转Java可以知道两个都是一个逻辑,都可以删去
- iget-object v5, p0, Lcom/mingrisoft_it_education/VideoMedia/VideoMediaPlayPage;->newVipLevel:Ljava/lang/String;
- invoke-static {v5}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
- move-result-object v5
- invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
- move-result v5
- iget-object v6, p0, Lcom/mingrisoft_it_education/VideoMedia/VideoMediaPlayPage;->levelResource:Ljava/lang/String;
- invoke-static {v6}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
- move-result-object v6
- invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
- move-result v6
- if-ge v5, v6, :cond_1
- const-string v5, "您没有权限观看此视频,请去购买!"
- invoke-static {p0, v5, v7}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
- move-result-object v5
- invoke-virtual {v5}, Landroid/widget/Toast;->show()V
复制代码
之后我们可以发现游客模式可以正常观看试看视频而不是只能看一个,至于VIP视频....
只能说毫无作用,无法直接播放,应该是还有校验逻辑,至于怎么校验(我一点不懂)
之前确实有大佬解开过,不过注入了arm弹窗,目前已经无法使用,咱也不懂思路,只能半解锁半求助,应该是播放源的问题,但具体怎么改我并不懂大佬可以自己拿来练练手,随便教教小萌新
补档,因为获得大佬的真传,又开始更新了,接下来就是读书的游客模式,搜索方法名ReadVideoMediaPlayPage.initVideoMeida
这边的判断太麻烦,直接上修改的,整个换掉就行- .method private initVideoMeida()V
- .registers 8
- .prologue
- const/4 v6, 0x0
- .line 551
- invoke-static {p0}, Lio/vov/vitamio/LibsChecker;->checkVitamioLibs(Landroid/app/Activity;)Z
- move-result v4
- if-nez v4, :cond_8
- .line 580
- :goto_7
- return-void
- .line 556
- :cond_8
- invoke-static {}, Ljava/text/DateFormat;->getDateInstance()Ljava/text/DateFormat;
- move-result-object v1
- .line 557
- .local v1, "df":Ljava/text/DateFormat;
- new-instance v4, Ljava/util/Date;
- invoke-direct {v4}, Ljava/util/Date;-><init>()V
- invoke-virtual {v1, v4}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
- move-result-object v0
- .line 559
- .local v0, "date":Ljava/lang/String;
- invoke-virtual {p0, v0}, Lcom/mingrisoft_it_education/VideoMedia/ReadVideoMediaPlayPage;->playVideoLimit(Ljava/lang/String;)V
- goto :goto_7
- .end method
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|