V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
KasuganoSoras
V2EX  ›  分享创造

写了个超微主板 IPMI 的高级功能激活码生成工具

  •  1
     
  •   KasuganoSoras ·
    kasuganosoras · 2019-06-24 00:30:05 +08:00 · 7648 次点击
    这是一个创建于 1740 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一台超微 X10DRi 主板的服务器,因为包装不知道哪去了,随主板附赠的光盘也不见了。

    看到 IPMI 里面有一个 Activate License,是一个激活码一样的东西,输入之后就可以解锁一些高级的 IPMI 功能,比如在线更新 BIOS,RAID 管理之类的。

    如果你是购买的全新主板或者包装完整的,光盘里就有激活码,但是像我这样丢掉包装或者买二手的机器就没办法了。

    上咕鸽搜索了一下,看到一篇关于超微 IPMI 源码的文章,讲到了授权码的计算方式,步骤是这样的:

    1. 将 IPMI BMC MAC 地址作为 16 进制字串转为二进制
    2. 使用 HMAC + SHA1 散列算法计算出 Key
    3. 取前 24 位作为授权密钥

    于是我就用 PHP 照着它的算法写了个生成工具

    https://tql.ink/ipmi/?mac=<你的 BMC MAC>

    目前已经开源了: https://github.com/kasuganosoras/SuperMicro-IPMI-LicenseGenerator

    如果有用的话欢迎点个 Star 噢~

    26 条回复    2023-10-13 23:01:41 +08:00
    privil
        1
    privil  
       2019-06-24 00:52:57 +08:00
    感谢分享,厉害了
    whileFalse
        2
    whileFalse  
       2019-06-24 09:08:21 +08:00
    建议改成 html 版本,这样不需要服务器部署了。
    jamesliu
        3
    jamesliu  
       2019-06-24 11:28:27 +08:00
    感谢分享
    azh7138m
        4
    azh7138m  
       2019-06-24 11:39:34 +08:00
    getBin 和 hex2bin 有啥区别吗?想改成 js 但是这里算出来不一样......
    KasuganoSoras
        5
    KasuganoSoras  
    OP
       2019-06-24 13:53:52 +08:00
    @azh7138m #4 Js hex2bin 算出来好像是会转成 base64,所以在 HMAC SHA1 的时候就变了
    https://stackoverflow.com/questions/19884738/openssl-hmac-sha1-digest-does-not-match-cryptos
    azh7138m
        6
    azh7138m  
       2019-06-24 14:22:46 +08:00
    写了一个,还是算出来不一样

    https://codesandbox.io/s/trusting-chebyshev-igk5q

    咋回事啊.webp
    KasuganoSoras
        7
    KasuganoSoras  
    OP
       2019-06-24 17:27:44 +08:00
    @azh7138m #6 我看着你这个 js 代码改了半个小时……试来试去还是一样……挠头
    azh7138m
        8
    azh7138m  
       2019-06-24 20:53:20 +08:00
    @KasuganoSoras hhhhh
    是啊,我寻思也没几行代码,加密前打印 php 的结果和 js 做对比看着都一样,咋算出来就不一样了呢
    KasuganoSoras
        9
    KasuganoSoras  
    OP
       2019-06-25 00:16:12 +08:00
    @azh7138m #8 也许是 Js 的 Hmac SHA1 算法实现方式和 PHP 不一样?
    一个一个试了一下,觉得问题应该就出在加密这一块了,也许是编码问题导致的也说不定
    KasuganoSoras
        10
    KasuganoSoras  
    OP
       2019-06-25 02:23:18 +08:00   ❤️ 2
    msg7086
        11
    msg7086  
       2019-06-25 05:32:20 +08:00
    之前都是用命令行生成的,反正也挺方便 = =
    azh7138m
        12
    azh7138m  
       2019-06-25 10:48:50 +08:00
    @KasuganoSoras 唉唉唉,这是换了 hash 库?
    KasuganoSoras
        13
    KasuganoSoras  
    OP
       2019-06-25 12:21:25 +08:00
    @azh7138m #12 对……换了一个 hash 库不知道为啥就行了
    后面又把 Go,Python,Java 版本造了出来,现在想想还有什么语言可以写的……日常不务正业 hhhh
    azh7138m
        14
    azh7138m  
       2019-06-25 14:33:27 +08:00
    想把依赖去掉,算出来又不对了
    https://codesandbox.io/s/kind-lehmann-ks0zr
    我怀疑我看了假的文档
    wxlg1117
        15
    wxlg1117  
       2019-06-25 14:35:58 +08:00
    @KasuganoSoras ,来个 c 啊 c++或者 c#的带图形界面的 exe
    KasuganoSoras
        16
    KasuganoSoras  
    OP
       2019-06-25 14:52:38 +08:00
    @azh7138m #14 做成单文件版了…… https://codesandbox.io/s/weathered-cherry-gmwqf?fontsize=14

    @wxlg1117 #15 不会写 C hhhhh
    azh7138m
        17
    azh7138m  
       2019-06-25 14:55:16 +08:00
    baoziking
        18
    baoziking  
       2020-04-05 08:49:07 +08:00
    我跟你说,我必须给你点个赞,为啥呢,因为我第一反应买一个授权,一看 30 美金,买吧,然后发现 TM 还必须要美国卡,逗我呢。然后我就搜索了一下,然后我用使用了一下。然后就美了。良心产品。
    KasuganoSoras
        19
    KasuganoSoras  
    OP
       2020-04-05 08:53:01 +08:00
    @baoziking #18 哈哈。。很高兴这个工具能帮到你
    linxijun
        20
    linxijun  
       2020-08-23 22:38:15 +08:00
    太感谢楼主了,我海淘的超微 e300-9d-4cn8tp 终于激活了,美国佬发邮件给他始终不回,谷歌到楼主的网页在复制粘贴 bmc 的 mac 到楼主写的网页上,算出来的激活码输入到我的 ipmi 上,就激活了,完美,太感谢楼主了
    https://s1.ax1x.com/2020/08/16/dEbd3V.md.jpg
    https://s1.ax1x.com/2020/08/16/dEbtNn.md.jpg
    https://s1.ax1x.com/2020/07/21/UIDRwq.md.jpg
    KasuganoSoras
        21
    KasuganoSoras  
    OP
       2020-08-24 00:01:56 +08:00
    @linxijun #20 感谢支持~另外这个单路的主板还是挺少见的,想问问支持什么系列的 CPU ?想买一个回来当 NAS 用
    linxijun
        22
    linxijun  
       2020-08-25 00:20:52 +08:00
    @KasuganoSoras 用的志强的 d-2123it,现在价格起步价都要 7800 。。。我这台是捡漏捡的。。。
    linxijun
        23
    linxijun  
       2020-08-25 00:21:23 +08:00
    @KasuganoSoras 而且是准系统,不带内存硬盘
    heqirong
        24
    heqirong  
       2021-09-20 12:32:46 +08:00
    感谢,激活成功,不过 x11sch 似乎只多了 bios 更新功能
    wjl1019547485
        25
    wjl1019547485  
       2022-10-30 22:24:23 +08:00
    h12ssl-i 好像更新了,不能通通过这个方式了
    gvdlmjwje
        26
    gvdlmjwje  
       167 天前
    @KasuganoSoras g 感谢老哥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   953 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:37 · PVG 05:37 · LAX 14:37 · JFK 17:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.