学习解锁emby服务端

原理概述

Emby 的 Premiere 功能验证,本质上是其客户端(前端JS)与服务端(C#程序集)向官方域名 mb3admin.com 发起请求,验证许可证状态。
破解的核心思路就是“狸猫换太子”:
简单来说,本文的原理是通过建立一个伪站点来代替官方服务器进行中间人替换,返回所需的请求数据,这可以通过修改几个关键文件来实现,从而绕过Emby的验证机制。

示例请求数据:

首先需要建立一个伪站来代替请求。
将Emby中所有指向 mb3admin.com 的请求地址,替换为你的伪站地址(如 yubanmei.com)

  1. 设备验证:

    • URL: https://mb3admin.com/admin/service/registration/validateDevice
    • 返回:

      {"cacheExpirationDays": 365, "message": "Device Valid", "resultCode": "GOOD"}
  2. 设备状态:

    • URL: https://mb3admin.com/admin/service/registration/getStatus
    • 返回:

      {"deviceStatus":"0", "planType":"Lifetime", "subscriptions":{}}
  3. 验证信息:

    • URL: https://mb3admin.com/admin/service/registration/validate
    • 返回:

      {"featId":"MBSupporter", "registered": true, "expDate":"2099-01-01", "key": 112}

导出和修改必要的文件:

从Emby服务器中导出以下文件,并修改其中的请求地址:

文件路径作用修改目标
/system/Emby.Server.Implementations.dll核心服务组件,包含验证URL常量修改 PluginSecurityManager.MBValidateUrl 字段
/system/MediaBrowser.Model.dll数据模型,包含用户权限属性修改 PluginSecurityInfo.get_isMBSupporter() 方法,直接返回 true
/system/Emby.Web.dllWeb端核心库替换嵌入资源 connectionmanager.js
/system/dashboard-ui/embypremiere/embypremiere.js前端 Premiere 页面逻辑替换其中的 mb3admin.com 字符串
/system/dashboard-ui/modules/emby-apiclient/connectionmanager.js前端 API 连接组件替换其中的 mb3admin.com 字符串

修改目标请求地址

  1. 下载使用 dnSpy 修改 DLL

  2. 修改JavaScript文件:

    • embypremiere.jsconnectionmanager.js中,找到请求地址mb3admin.com并将其替换为你自己的伪站点地址(如:yubanmei.com)。
  3. 使用dnSpy修改DLL文件:

    修改Emby.Web.dll:

    • 打开Emby.Web.dll,在Emby.Web.dashboard_ui.modules.emby_apiclient.connectionmanager.js资源中右键点击,选择“保存”并将文件保存到本地,然后右键删除文件。
    • 然后打开Emby.Web.dashboard_ui.modules.emby_apiclient.connectionmanager.js找到请求地址mb3admin.com并将其替换为你自己的伪站点地址后保存。
    • 再次到资源中随便选中一个文件右键,创建文件资源,然后选择修改后的文件添加回去。

    修改MediaBrowser.Model.dll:

    • MediaBrowser.Model.dll中,找到PluginSecurityInfo类的get_isMBSupporter()方法,直接将return语句修改为return true;

    修改Emby.Server.Implementations.dll:

    • Emby.Server.Implementations.dll中,找到PluginSecurityManager,修改MBValidateUrl字段,将其指向你自己的请求地址。
    • 然后将dnSpy右上角的c#改为TL,然后ctrl+f进行查找mb3admin.com会有两个结果,我们选择第二个修改为自己的伪站点地址,大概再1407行。
  4. 替换文件并重启服务:

    • 完成所有修改后,我们保存编译,然后将更新后的文件替换回Emby服务器,或使用Docker volumes进行替换。
    • 在Emby后台找到Emby Premiere选项,输入任意字符,即可解锁小金标。

Docker配置示例

如果你使用Docker部署Emby,以下是一个配置示例:

version: '2.1'
services:
  emby:
    image: emby/embyserver:4.8.1.0
    container_name: emby
    volumes:
      - ./config:/config
      - ./system/embypremiere.js:/system/dashboard-ui/embypremiere/embypremiere.js
      - ./system/connectionmanager.js:/system/dashboard-ui/modules/emby-apiclient/connectionmanager.js
      - ./system/Emby.Server.Implementations.dll:/system/Emby.Server.Implementations.dll
      - ./system/MediaBrowser.Model.dll:/system/MediaBrowser.Model.dll
      - ./system/Emby.Web.dll:/system/Emby.Web.dll
    ports:
      - 8096:8096
    environment:
      - TZ=Asia/Shanghai

这样,你就可以通过伪站点和自定义请求数据绕过Emby的激活和验证机制,获得所需的功能。如果有任何疑问或需要进一步的帮助,请随时联系我!

评论 (4)

    1. Bingo Bingo 2024.08.07 23:17 Linux

      an按照教程修改 我发现替换Emby.Server.Implementations.dll 后无法起来,已经核对过几遍了 是按着教程走的 我的搭在公网的伪站 返回值也是对的 是不是修改方式变了

        1. admin admin 2024.09.30 11:47 Windows 博主

          是不是你的版本对不上啊,tl和c#的文件是不一样的,需要修改两个地方,tl指令只能在tl界面下面找到。

            1. papio papio 2025.07.24 09:38 Windows

              博主大佬好,我也是这个问题,通过c#修改的MBValidateUrl,通过IL修改的另一个,但是启动就会闪退,如果换成别人的地址,就可以,怀疑是破解网站搭建的不对?但是证书也有,返回格式也是一样的,允许跨域也设置了,不知道为啥就是不行

    2. Ryan Valor Ryan Valor 2025.07.27 00:47 Windows

      https://github.com/2017fighting/docker-mods/tree/emby-crack
      感谢老哥,把你的破解方法写成了一个程序,还封装成了linuxserver/mods,这样如果用linuxserver家的emby镜像的话,可以很方便的使用

发表评论