SuperMicro-IPMI-LicenseGene.../README.md

78 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2019-06-23 23:07:47 +08:00
# SuperMicro IPMI 授权生成器
2019-06-25 12:35:25 +08:00
SuperMicro 超微主板 IPMI 高级功能授权解锁 Key 生成工具,使用多种语言编写
2019-06-23 23:07:47 +08:00
超微的主板自带的 IPMI 有些高级功能是需要授权才能解锁的,比如在线更新 BIOSRAID 管理等等,但是我找半天也不知道这个 Key 在哪……
在咕鸽上找了一下,看到一篇逆向超微 IPMI 源码的文章,大概摸清了它的授权验证原理:
1. 将 IPMI BMC MAC 地址作为 16 进制字串转为二进制
2. 使用 HMAC + SHA1 散列算法计算出 Key
3. 取前 24 位作为授权密钥
2019-06-25 14:00:08 +08:00
我寻思那挺简单啊……于是就给它写了个生成工具出来。
2019-06-23 23:07:47 +08:00
2019-06-25 14:00:08 +08:00
在线版https://tql.ink/ipmi/
API 调用:`https://tql.ink/ipmi/api.php?mac=<你的 BMC MAC>`
2019-06-23 23:07:47 +08:00
## 使用方法
2019-06-25 14:00:08 +08:00
你可以直接使用网页版,最方便,也可以自己下载下来编译运行玩
`git clone` 下来,然后选择一个你喜欢的语言,如果需要编译就编译一下,脚本语言例如 php python 可以直接运行
然后执行方法:
```
命令 <你的 BMC MAC>
```
例如
```
java main 0c:c4:7a:3e:2f:de
```
PHP 类引用的方法:
2019-06-23 23:07:47 +08:00
```php
<?php
2019-06-24 00:30:46 +08:00
include('supermicro.php');
2019-06-23 23:07:47 +08:00
$supermicro = new Supermicro();
echo $supermicro->getLicense("这里填写你的 IPMI MAC 地址");
```
其实可以更简单,命令行执行:
```bash
echo -n '你的 MAC 地址' | xxd -r -p | openssl dgst -sha1 -mac HMAC -macopt hexkey:8544E3B47ECA58F9583043F8 | awk '{print $2}' | cut -c 1-24
```
那还有必要写这个工具吗?有!为什么呢?因为无聊……
![img](https://i.imgur.com/IjI8nY5.gif)
2019-06-25 12:31:33 +08:00
## 多语言
什么你不喜欢 PHP那就试下其他语言吧还有 Python、Go、Java、JavaScript 版本可选
JavaScript 版本是 [@muzea](https://github.com/muzea) 大佬做的,很惭愧,我只是做了个微小的 UI。
其他语言也是从咕鸽上搜索来东拼西凑做成的,凑合着看吧……
2019-06-25 14:00:08 +08:00
目前我就会这几种语言了,如果你会其他语言的话,可以尝试自行实现生成,然后欢迎提交 Pr~
2019-06-23 23:07:47 +08:00
## BMC MAC 地址在哪查看?
登录你的主板 IPMI首页就能看到 BMC MAC 地址
2019-06-23 23:11:31 +08:00
## 怎么激活?
登录 IPMI找到下拉栏的 Other其他然后 Activate License 这个页面
把生成出来的 License Key 填进去就行了
2019-06-23 23:07:47 +08:00
## 开源协议
本项目使用 MIT 协议开源