白嫖一个emby玩玩

先展示一下白嫖的效果: 试了一些常见的东东,比如群晖和威联通自带的Video Station,plex, jellyfin,还有emby,然后发现emby对我来说是体验最好的一个了。 可惜的是,这玩意和plex一样,需要购买,否则有些功能受限,比如硬解。上网搜索了一下,emby白嫖的方法有好多,这里挑一个来说明一下。 首先,得有一个web服务器,NAS自带的就可以了,hosts定义一下

192.168.1.100 mb3admin.com

然后nginx里开启一个mb3admin.com的虚拟主机,加上如下配置

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Method *;
add_header Access-Control-Allow-Credentials true;

location /admin/service/registration/validateDevice {
    default_type application/json;
    return 200 '{"cacheExpirationDays": 7, "resultCode": "GOOD", "message": "Device Valid"}';
}
location /admin/service/registration/validate {
    default_type application/json;
    return 200 '{"featId":"","registered":true,"expDate":"2099-01-01","key":""}';
}
location /admin/service/registration/getStatus {
    default_type application/json;
    return 200 '{"deviceStatus":0,"planType":"Lifetime","subscriptions":{}}';
}

这个需要一个域名证书,网上找找可以自签名的教程照着操作即可。

上述的自签名证书需要将证书放在emby的文件夹里(千万别按网上的教程给直接替换掉NAS的证书,追加我没试过)
```
群晖存放位置:
/var/packages/EmbyServer/etc/ssl/certs/ca-certificates.crt
威联通存放位置:
/etc/ssl/certs/rootca.pem
```
使用过程中发现,直接hosts里指定mb3admin.com的话可能会影响到插件的安装(因为我是直接在路由里指定的,所以有可能导致emby内部有对此服务器的请求被中转掉),正好五一闲着没事,就想重新折腾一下,看看它是从哪里请求mb3admin.com的,然后把域名直接给改了,反正返回值的格式什么地已经知道了。
搜索了一下,在EmbyServer目录中找到两个js文件以及两个dll文件
```
./system/Emby.Web.dll
./system/Emby.Server.Implementations.dll
./system/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js
./system/dashboard-ui/embypremiere/embypremiere.js
```
明码的就找到这几个文件,直接修改mb3admin.com为emby.imzhp.com,测试了一下,成功了。

#### 注意:我目前只有PC上访问的需要,所以没有考虑和测试过其它客户端的解决方法。

## 归纳整理了一下
精简了一下,只需要在 Emby 的安装目录中按照下面的步骤执行即可。
```
wget https://crackem.imzhp.com/System.Net.Http.dll
sed -i "s/mb3admin/crackem\.imzhp/g" `grep mb3admin.com/admin ./dashboard-ui -rl --exclude-dir=plugins`
sed -i "s/connectionmanager\.js/xxxxxxxxxxxxxxxxx\.js/g" Emby.Web.dll
```
最后修改:4年前