分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

(编辑:jimmy 日期: 2024/12/24 浏览:2)


1. 介绍:
StreamLabs OBS 是个国外非常有名的直播软件,支持利用显卡高效进行游戏录制,且支持多个直播平台 (油管,Twitch,Facebook) 等。
但若想在多个平台直播,需要先购买付费版 Prime 会员。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_osu.png




2. 缘由:
我国外一个好哥们突然跟我说他最近想搞直播,试了几个最後决定用这款软件。
然而这软件有些 Bug,他怕付费买了会员後不好用,希望能先测试一下。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

20200827.png


找了下互联网好像没先人动过这个软件。看来只能自己处理了 (*/ω\*)
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

202008272.png




3. 分析:
软件名称是 OBS (Open Broadcaster Software),看见这个 O(pen) 字样就知道是个开源软件。
果然马上在 GitHub 上找到了官方 Repo (stream-labs/streamlabs-obs),还附上了编译及打包方式。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_git_5.png


源码都有了,那也不用瞎折腾了。第一个想法就是把那些判断是否为 prime 的变数於源码修改掉,然後重新编译打包。
直接用 GitHub 内建的代码搜索功能搜下关键字 "prime",
发现搜到一堆资源/多国语言文件。往後翻了几页终於发现了特别的关键字: "isPrime"
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_git_1.png


并且从档名後辍 (.ts) 看,主要的程序逻辑是用 TypeScript 语言写的。
趁机升级下咱们的关键字,改为搜索 "isPrime" 过滤掉无用资讯。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_git_2.png


太好了,果然马上搜到,看来咱们要的就是这个文件 (app/services/user/index.ts)。储存了 isPrime 的栏位函数 (get, set),以及 isPrime 变数本身。
现在目的只有一个:透过任何方式,把相关属性都改成 true 就行了。


4. 解锁:
立马把 repo clone 下本地。
修改前,先来试试能不能编译成功。照着上面的官方文档,於目录下执行指令:
[Bash shell] 纯文本查看 复制代码
yarn install # 依赖安装yarn compile # 编译yarn start # 启动程序

跑了半小时,終於編譯好並打开了。按下 F12 还能跳出开发者工具。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_f12.png

等等... 既然有了 F12,试试直接动态修改:
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_f12_2.png


果然生效了,设置里的付费功能都解锁了。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

obs_settings.png


赶紧叫国外哥们照着做一遍,卻发现他按了 F12 没有反应。原本还以为是他操作错了,自己下载了稳定版安装包试了下,结果还真不行。
调查了一番,发现这个软件是用 Electron 写的,只有开发版本 (自己编译的就是) 预设启用了 F12 等调试功能,Production (发布) 版本默认则是不启用的。


整理一下,现在的解锁方向有:
1) 直接修改源码文件,重新打包成发布版本。(麻烦,档案大,要手动更新)
2) 於开发版本,手动打开 F12 注入解锁代码。(普通用户没这个版本,每次重启软件要重新输入)
3) 於发布版本,用特殊方式注入解锁代码。(快速方便) (XSS? 强制启用调试功能?)
搜了一下,发现 Electron 支持透过 Chrome 远程调适,只要於程序发布版 argv 传入参数 --remote-debugging-port=xxxx,程序就会於指定埠号监听远程调适服务。
又再搜了一下,发现 GitHub 上竟然有高人写了 Electron 注入工具 (tintinweb/electron-inject),原理就是利用上面的 remote-debugging-port,目的是注入代码启用 F12。
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

elctron_injector.png


这样我们就可以透过方法 (3) 制作一个 Loader (加载器) 了。
把注入工具 clone 下本地,修改一下代码。注入代码处附上我们前面 F12 使用过的解锁代码:
[JavaScript] 纯文本查看 复制代码
try {    let sv = servicesManager.instances.UserService;    sv.isPrime = sv.state.isPrime = true;    sv.SET_PRIME = ()=>{};} catch(e){};

接下来用 PyInstaller 打包成 .exe,
[Bash shell] 纯文本查看 复制代码
pyinstaller __main__.py -F --noupx -n OBSLoader -w # --icon StreamlabsOBS.ico

启动器制作完成!扔到安装目录下运行看看:
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

OBSLoader.gif


成功!还顺便启用了 F12!
编译好的加载器: https://115.com/s/sw38iqf3nty (访问码:g121;压缩包密码: 52pojie)


更新:
留意上图 Sublime 红色警告标示处,结尾 """ 处换了个行 JavaScript 就不给过了,上个发布版本不小心多了一行,测试时打开才猛然发现失效,已修复。
小白第一次发文,从帐号白嫖帖 (会员申请) 那搬来的。
排版很差、没国内云盘号,望各位师傅不吝指教。

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?