Image Image Image Image Image

25

11 月

Autodesk激活机制浅析

  • By IanGoo

最近升级Autodesk Alias AutoStudio 2025.1,发出了这样的感慨:每次升级这个破软件都得脱层皮。

原因很简单,也很好理解:Autodesk的软件订阅费那是相当高的,大概在百万元一年。我作为一个个人用户很显然不可能订阅正版,只能用学习版。同样,为了保证商业利益,Autodesk为旗下软件设置的激活验证机制也是比较复杂的。对于学习版用户来说,就得身兼企业IT和终端用户两个职责。

我大概是在Alias 2024.1开始接触这套激活机制的,几次升级下来,也算是摸清楚了这套机制的工作流程,因此专门写下来,录以备忘。

Autodesk使用的激活机制是由GLOBEtrotter开发的FLEXlm[1]。FLEXlm是FLEXible License Manager的缩写,是一套非常行之有效、被超过2000家软件商采用的License管理机制——其中就包括Autodesk。

FLEXlm的运行结构分成两大块:服务端和客户端。对于企业当中的正版用户来说,通常是将服务端安装在企业的IT基础设施当中,企业的工作站安装Autodesk的软件,软件通过配置正确的License Server地址来启动。但是对于我等学习版用户来说,就得将服务端和客户端都装在自己的电脑里了。

Autodesk的网络授权管理(Network License Manager,NLM)是一个相对于Autodesk软件本体独立的软件,其中包含下列文件[2]

文件名描述
adskflex.exeNLM守护程序,负责跟踪签出的License和使用各个License的计算机。
lmgrd.exeNLM守护程序,负责与Autodesk软件的客户端联系,并在adskflex.exe与客户端之间传递信息。
xxx.lic或者xxx.datLicense文件本体。
lmutil.exe服务器配置程序(CLI)。
lmtools.exe服务器配置程序(GUI)。

在客户端,也就是Autodesk的软件安装的计算机上,会同步安装一个名为Autodesk Desktop Licensing Service的服务,实际上负责激活的就是NLM和Desktop Licensing Service,它们之间对接成功就可以让Autodesk的软件运行起来。

基本的流程如下:

  1. Desktop Licensing Service通过软件配置里填写的服务器地址,连接上服务器上的lmgrd.exe
  2. adflex.exe审核对应终端上的Licensing Service是否上报了正确的配置信息、终端请求的License类型和数量,并检查服务器上是否有剩余的License,如果满足全部要求,就将License释放给客户端。
  3. Desktop Licensing Service接收License后,获准启动对应的软件。

Hmm,基本上就是这么个流程:

我(用户)要找一个维修工(Autodesk软件)干点事,但这货要先拿钱才干活,于是找一个人(Desktop Licensing Service)去银行取钱。他来到了银行窗口(lmgrd.exe),递上了我的银行卡(License请求),柜员(adskflex.exe)检查了一下银行卡,审核了一下我的账户(License文件),确认要取的钱没有超出余额,就点出对应数量的钞票(License)给这个人,这人拿着钞票核验了一下都是真钞,拿回来交给维修工,于是——Autodesk,启动!

当然,这是正版的做法。我们是学习版嘛……那该怎么办呢?

作为学习版用户,我的账户里……没钱。所以,我们要从三个地方入手:

  1. 伪造账户,假装我的账户里有钱。
  2. 将柜员换成自己人,看一眼我的账户里“有钱”,于是取钱——但是取出来的都是假钞。
  3. 将来取钱、验钞的也换成自己人,明明拿的是假币,也声称这些都是真钱。

这就OK了,因为维修工是个傻子,他只认花花绿绿的钞票和取钱人的信誓旦旦,他刮大白换空开拧水龙头是把好手但是他不会验钞。

大致就是这么个流程。所以对应的破解工作如下:

  1. 伪造账户:修改并替换、指定License文件,这个可以通过LMTools来配置。
  2. 将柜员换成自己人:替换adskflex.exe
  3. 将取钱人换成自己人:在AdskLicensingAgent当中添加一个dll文件,这个文件将和adskflex.exe对接,并劫持客户端和服务器之间的通讯,让软件认为自己拿到了正确的License。

这么理解的话,就很容易想明白以后Autodesk的软件该怎么处理了:

首先,就是最关键的:要换上对应的License文件。这次升级2025.1就是在寻找支持这一版本的License文件上小小地卡了一下。

然后要让adskflex.exe和对应的AdskLicensingAgent注入的文件对应上。

至于其他的NLM组件其实是完全不用动的。这次在一台电脑上,我只是重建了一个服务,另一台电脑上连服务都没有重建,只是替换了一下License、更新了adskflex.exe、重新注入version.dll,就搞定了。

Reference

  1. IBM – Chapter 1: Welcome to FLEXlm[]
  2. 安装帮助 | 关于管理网络许可 | Autodesk[]

Tags |