✕
开启精彩搜索
热门搜索
emby EMBY 解析 免流 源码 IPV6 阿里 阿里云 青龙 音乐 网心 网心云 webdav 阿里云盘 unraid 洗白 Rclone 刮削 云梦

学习 Emby Server 解锁及优化

前言

网上很多 Emby 的资源都失效了,不过教程还是挺多,本文主要参考文章「重新学习并解锁emby」,总结在折腾 Emby 过程中的一些心得。本文不提供任何破解文件下载,仅作分享交流,请支持正版。


准备工具

下载dnSpy备用,下载地址:https://github.com/dnSpy/dnSpy


修改服务端文件的详细步骤

1、这几个 dll 直接使用网盘里改好的文件,因为它们不涉及域名修改可以直接用。

2、打开 dnSpy 并关闭默认文件。

3、把 Emby.web.dll 拖入软件然后找到资源。

4、导出 JS 文件进行。

5、修改 JS 内容后替换回去。

  • 先把原来的 connectionmanager.js 删除

6、Emby.Server.Implementations.dll文件修改(这个文件要改 2 处)

  • 切换 IL 修改, 可以搜索域名找到对应行

  • 再弹窗中修改即可。

7、剩余 2 个前端 JS 文件。可以把网盘里提供的两个 JS 文件下载后替换域名链接即可。


总结

解锁的方式其实分两类,一种是改客户端,一种是改服务端。最终原理一样,都是搭建仿冒认证服务器,让客户端访问到伪服务器从而获取授权信息。

  • 改客户端:有了伪服务器的前提下(关键词「搭建 EMBY 伪验证服务」),通过修改 hosts 文件的方式将 mb3admin.com 的 IP 解析到伪服务器,同时伪服务器和客户端都需要安装自签名证书。
  • 改服务端:修改服务端源文件,将默认的认证服务器 mb3admin.com 地址直接改成自建或别人提供的伪服务器,这样就不需要在每个客户端安装自签名证书了。

起初可以白嫖的伪认证服务现在要么下线要么仅提供短期试用。好在有人提供了伪服务器的搭建方法,这里就不搬运原文了,访问 crackemby.mb6.top 即可查看。

因为改服务端的方式可以一劳永逸,本文也是主要介绍这种方式的折腾过程。测试使用的是 Window 服务端,其他端比如 Linux 或者群晖应该也是一样的步骤。


搭建伪认证服务

因为改服务端的方案不需要自签名证书,所以把服务部署到 Serverless 平台上是一个不错的选择。上面提到的大神提供了详细的补丁文件,其中一个文件是「emby伪站搭建与去更新」,里面提供了通过 Cloudflare Worker(不懂的请先自行学习) 的方式快速部署一个伪认证服务,但是代码需要改动,以下代码是改后可以直接复制使用的:


// validatedevice
addEventListener("fetch", (event) => {
  const { origin, pathname: path, search } = new URL(event.request.url);

  if (path.endsWith("/admin/service/registration/validateDevice")) {
    return event.respondWith(handleRequest1(event.request));
  }

  if (path.endsWith("/admin/service/registration/getStatus")) {
    return event.respondWith(handleRequest3(event.request));
  }

  if (path.endsWith("/admin/service/registration/validate")) {
    return event.respondWith(handleRequest2(event.request));
  }
});

async function handleRequest1(request) {
  const files = '{"cacheExpirationDays": 365,"message": "Device Valid","resultCode": "GOOD"}';
  return new Response(files, {
    headers: {
      "content-type": "application/json; charset=utf-8",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Method": "*",
      "Access-Control-Allow-Credentials": "true",
    },
  });
}

// validate
async function handleRequest2(request) {
  const files = '{"featId":"","registered":true,"expDate":"2099-01-01","key":""}';
  return new Response(files, {
    headers: {
      "content-type": "application/json; charset=utf-8",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Method": "*",
      "Access-Control-Allow-Credentials": "true",
    },
  });
}

// getstatus
async function handleRequest3(request) {
  const files = '{"deviceStatus":"0","planType":"Lifetime","subscriptions":{}}';
  return new Response(files, {
    headers: {
      "content-type": "application/json; charset=utf-8",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Method": "*",
      "Access-Control-Allow-Credentials": "true",
    },
  });
}

部署后将官方的 mb3admin.com 地址换成你自己部署的地址即可。举个例子,你部署好的地址是emby.user.workers.dev,那么你的 Emby 服务器最终的验证请求之一将发送到 https://emby.user.workers.dev/admin/service/registration/validateDevice

💬 评论区 0