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 就不给过了,上个发布版本不小心多了一行,测试时打开才猛然发现失效,已修复。
小白第一次发文,从帐号白嫖帖 (会员申请) 那搬来的。
排版很差、没国内云盘号,望各位师傅不吝指教。
标签:
分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。