吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18676|回复: 54
收起左侧

[Web逆向] 分分钟解锁直播软件 StreamLabs OBS Prime (Electron JS 注入)

[复制链接]
d0gkiller87 发表于 2020-8-29 17:48
本帖最后由 d0gkiller87 于 2020-9-18 17:06 编辑

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


2. 缘由:
我国外一个好哥们突然跟我说他最近想搞直播,试了几个最後决定用这款软件。
然而这软件有些 Bug,他怕付费买了会员後不好用,希望能先测试一下。
20200827.png
找了下互联网好像没先人动过这个软件
。看只能自己处理了 (*/ω\*)
202008272.png



3. 分析:
软件名称是 OBS (Open Broadcaster Software),看见这个 O(pen) 字样就知道是个开源软件。
果然马上在 GitHub 上找到了官方 Repo (stream-labs/streamlabs-obs),还附上了编译及打包方式。
obs_git_5.png
源码都有了,那也不用瞎折腾了。第一个想法就是把那些判断是否为 prime 的变数於源码修改掉,然後重新编译打包。
直接用 GitHub 内建的代码搜索功能搜下关键字 "prime"
发现搜到一堆资源/多国语言文件。往後翻了几页终於发现了特别的关键字: "isPrime"
obs_git_1.png
并且从档名後辍 (.ts) 看,主要的程序逻辑是用 TypeScript 语言写的。
趁机升级下咱们的关键字,改为搜索 "isPrime" 过滤掉无用资讯
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跳出开发者工具。
obs_f12.png 等等... 既然有了 F12,试试直接动态修改:
obs_f12_2.png
果然生效了,设置里的付费功能都解锁了。
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。
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

启动器制作完成!扔到安装目录下运行看看:
OBSLoader.gif

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





更新:
留意上图 Sublime 红色警告标示处,结尾 """ 处换了个行 JavaScript 就不给过了,上个发布版本不小心多了一行,测试时打开才猛然发现失效,已修复。


小白第一次发文,从帐号白嫖(会员申请) 那搬来的。
排版很差、没国内云盘号,望各位师傅不吝指教。
obs_loader.png
obs_git_4.png
obs_git_3.png

免费评分

参与人数 5威望 +1 吾爱币 +24 热心值 +5 收起 理由
过冬嘚螡孖 + 1 + 1 我很赞同!
jasonliu234 + 1 + 1 谢谢@Thanks!
雨熙辰 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wang1688 + 1 + 1 我很赞同!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

 楼主| d0gkiller87 发表于 2020-10-15 02:15
jasonliu234 发表于 2020-10-13 17:41
里面的模板,并不是免费的。

貌似未破解成功。请问还有什么prime功能可以用的? 谢谢。

模板毕竟是从服务端下载的,服务端可以轻松校验凭证是否正确。有空再试试能不能绕过。
这个主要是解锁多平台直播,原本只能一次用一个平台。
qqwog702 发表于 2020-9-2 15:52
 楼主| d0gkiller87 发表于 2020-9-2 20:46
月小梧 发表于 2020-9-3 12:05
666,可以可以
Hmily 发表于 2020-9-3 17:50
@d0gkiller87 帖子图有几处还是外链不显示,上传的有几个没贴进去。
 楼主| d0gkiller87 发表于 2020-9-3 23:47
Hmily 发表于 2020-9-3 17:50
@d0gkiller87 帖子图有几处还是外链不显示,上传的有几个没贴进去。

下次直接换个浏览器好了,总觉得 Chrome 不把论坛当 HTML 解释。。。
zyqszb 发表于 2020-9-4 10:30
没有找到下载地点哦
wangjing3018 发表于 2020-9-6 16:03
找了很久了,感谢楼主分享
商务在线 发表于 2020-9-6 18:37
这不就是OBS?
wang1688 发表于 2020-9-9 12:26
很好,值得看,  有下载地址吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-19 12:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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