在前人的基础上,再摸着石头过河,是一种历练。方向正确后,干就是一种美德。 一直以来,都是以3D4DA1D6找Seed后再做License,图得是简单,于技术而言,似无水平。而对patch来说,有无后患,还是两可。 为了日有所得,便重操旧业,翻起了老古董,美其名曰学习乃终身大事。 书归正传, A、Flexlm SDK 9.2编译本人操作系统:win10 64位- 安装VS2012;
- 复制vs2012\vs\bin\vcvars32.bat至flexlmSDK\目录下,并运行;
- 在开始菜单下运行developer commandprompt for vs2012
- 进入命令模式后,执行以下命令:
copy certicom/lib/i86_n3/include/*.* h /y copy certicom/lib/i86_n3/lib/*.* i86_n3 /y copy flexlm-java-tng/c/i86_n3/*.* src /y 5. 再次执行以下命令以生成lmgr*.lib等三个文件: cd ..\src nmake /f pc.mak /*生成lmgr.lib文件*/ cd ..\app nmake /f pc.mak /*生成lmgras.lib文件*/ cd ..server nmake /f pc.mak /*生成lmgrs.lib文件*/ 6. 初次配置lm_code.h文件,注意:在SDK中共有两个lm_code.h文件,一个在..\machind目录下,另一个在..\h目录下,二者内容应一致, 特别是vender_name,应该与../vendor/pc.mak中212行lmnewgen demo -o lm_new.c中的改demo为VENDOR_NAME时一致; 其它的可用LMKG3生成;lm_seed先不用更改; 7. 执行以下命令,在..\utils目录下生成lmrand1.exe, cd ..\utils nmake /f pc.mak 8. 在..\utils目录下运行lmrand1 -seed,生成LM_SEED123,此处需要较长时间,耐心等候; 9. 回到..\machind目录下,编辑LM_CODE.h文件,把上一步生成的LM_SEED123替换,保存好后再复制LM_CODE.h文件到..\h目录下替换同名文件,目的是保持一致。 10. 再次进入..\utils目录下执行以命令后,将更新生成lmrand1.exe, lmnewgen.obj等文件; cd ..\utils del *.obj nmake/f pc.mak 11. 把前述步骤产生的以下文件复制到..\i86_n3下 ..\utils\lmrand1.exe,lmnewgen.obj ..\src\lmgr.lib ..\app\lmgras.lib ..\server\lmgrs.lib 12. 修改..\i86_n3目录下的makefile文件,把里面的DEMO换成自己的VENDOR_NAME(与lm_code.h一致文件中的值一致),然后运行Build MT,即可生成制作许可的lmcrypt,makekey等文件。完成编译。 13. 每次修改完lm_code.h文件后,重复执行j,k,l三步即可(在第k步中,只需复制lmrand1.exe,lmnewgen.obj两个文件即可)。B. 完成SDK编译后,在..\i86_n3目录下产生的两个重要文件lmprikey.h和lmpubkey.h,其中lmprikey.h用于完成SIGN过成,lmpubkey.h中的值则用于ECC PUBKEY替换。C. 在命令行模式下,执行..\i86_n3\makekey,根据提示即可完成LICENSE的生成;也可自己准备一个license模板,在Windows下用鼠标拖到lmcrypt上生成license。[ 此帖被tflying在2021-05-19 09:00重新编辑 ]