原理概述

简单来说,本文的原理是通过建立一个伪站点来代替官方服务器,返回所需的请求数据。这可以通过修改几个关键文件来实现,从而绕过Emby的验证机制。

示例请求数据:

  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":"2030-01-01", "key": 114514}

操作步骤

  1. 导出和修改必要的文件:

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

    • /system/dashboard-ui/embypremiere/embypremiere.js (网页播放器)
    • /system/dashboard-ui/modules/emby-apiclient/connectionmanager.js (连接组件)
    • /system/Emby.Server.Implementations.dll (服务组件,包含激活状态等)
    • /system/MediaBrowser.Model.dll (后台页面)
    • /system/Emby.Web.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资源中右键点击,选择“保存”并将文件保存到本地。
    • 删除原始的connectionmanager.js文件,并将修改后的文件添加回去。

    修改MediaBrowser.Model.dll:

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

    修改Emby.Server.Implementations.dll:

    • Emby.Server.Implementations.dll中,找到PluginSecurityManager,修改MBValidateUrl字段,将其指向你自己的请求地址。
    • 查找MediaBrowser.Common.Net.HttpRequestOptions构造函数,将其中的mb3admin.com地址替换为你的自定义地址。
  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的激活和验证机制,获得所需的功能。如果有任何疑问或需要进一步的帮助,请随时联系我!

标签:无

2 条评论

  1. Bingo Bingo

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

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

你的评论