1.什么是CADSTAR?

 Home Page: https://www.zuken.comWhat's New in CADSTAR 16: https://www.zuken.com/en/products/pcb-design/cadstar/whats-new/cadstar-whats-new/cadstar-16-features

2.授权方式

网上之前有流传CADSTAR13的破解文件,经分析后v13采用FlexNet授权保护,破解文件Patch了ECC校验,用FlexNet SDK编写了生成License的程序。Patch的文件有一下.

engineer.exe
impulse.exe
Log.txt
pred.dll
rdr2adv.exe
scs.exe
senario.exe
sysutils.dll
gradianWX\bin\winnt\gradian.EXE

经对比分析后,CADSTAR16采用FlexNet 11.11.1 授权保护,要写注册机首先得有SDK,网上公开的有FlexNet SDK 11.9.1

3.破解过程

3.1 找VENDOR_NAME
OD加载engineer.exe,搜索常量0x87654321.定位到附近有0x12345678的位置,在其上面一个CALL下断,F9运行至断点即可看到VENDOR_NAME任然还是zuken.

3.2 找FEATURE_NAME
主要是寻找lc_checkout函数,IDA加载11.9.1 SDK中的lmgr.lib库文件中的lm_ckout.obj文件,定位到_lc_checkout函数,先观察一下11.9.1中该函数的造型,然后在定位11.11.1中的lc_checkout函数。

肉眼观察有一个0x20000常量,被 & 和 ^ 一次,在OD中搜索命令序列”and ecx, 0x20000”,找到4处,经肉眼比对,第一处函数过程基本与IDA中的一致,基本可以确定该函数就是新版11.11.1中的lc_checkout函数。

也可以根据sdk 11.11.1 的IDA SIG文件直接定位到lc_checkout函数

在函数入口下断后F9运行至函数入口.

寄存器以及堆栈中已经显示出了FEATURE_NAME和FEATURE_VERSION。且在数据窗口中能观察到其他的FEATURE.经过多次调试观察发现,FEATURE_NAME基本上都在存储于PE文件的data段,且都是类似”name version epxxxx”,因此在OD中ALT+M打开窗口找到PE文件的data段,双击打开其数据窗体,在数据窗体内搜索”ep2”、”ep3”、”ep4”类似字符,观察是否以”name version epxxxx”存储,即可找到全部的FEATURE.

同理处理其他文件,得到的feature如下表

filename feature version unkonw
enginer.exe emc_server 25.0 ep4416
emc_front_loaded 25.0 ep4418
dc_analysis 25.0 ep4454
sysutils.dll cadstar_gold 19.0 ep2553
cadstar_silver 19.0 ep2554
cadstar_bronze 19.0 ep2555
emcrules_auth 4.0 ep2698
cadstar_eval 19.0 ep2998
cadstar_beta 19.0 ep2999
cadstar_field_solver 19.0 ep3085
cadstar_library_editor 19.0 ep3099
cadstar_schematics 19.0 ep3103
freedom 9.0 ep3314
cstar_viewer_plus 19.0 ep3675
cadstar_des_view_ppr 19.0 ep3690
cadstar_des_view_rep_gen 19.0 ep3691
embedded_router 19.0 ep3876
emd_2dcheck 4.0 ep3942
cadstar_variants 19.0 ep3953
pred_ibase 25.0 ep4191
pred_cbase 25.0 ep4194
pred_interactive 25.0 ep4195
pred_2000 25.0 ep4196
pred_5000 25.0 ep4197
pred_single_pass_batch 25.0 ep4205
pred_multi_pass_batch 25.0 ep4206
pred_memory_batch 25.0 ep4209
pred_mitre_batch 25.0 ep4210
cadstar_ds1_interface 3.0 ep4372
pred_pattern_batch 25.0 ep4211
hs_route 25.0 ep4213
hs_place_and_route 25.0 ep4214
cadstar_scm_variants 19.0 ep4263
hotstage_verify 25.0 ep4297
pred_2000_s 25.0 ep4304
pred_2000_hs 25.0 ep4305
cadstar_datasheet_pub 19.0 ep4323
cadstar_shape_trim 19.0 ep4324
pred_six_layer_enh 25.0 ep4336
pred_max_layer_enh 25.0 ep4337
viewer_cadif_import 19.0 ep4377
lightning_spice_gen 25.0 ep4463
cadstar_rules_by_area 19.0 ep4492
cadstar_migration_link 1.0 ep4543
cstar_idf_link 4.0 ep4569
cstar_constraint_browser 25.0 ep4577
analysis_results_viewer 2.0 ep4593
cadstar_copper 19.0 ep4599
cadstar_scm_copper 19.0 ep4600
impulse.exe idem_model_import 6.0 ep4534
sim_lib_manager 6.0 ep4222
scs.exe si_interactive_simulation 25.0 ep4221
si_batch_simulation 25.0 ep4417
lightning_spice_gen 25.0 ep4463
pred.dll pred_ibase 25.0 ep4191
pred_vbase 14.0 ep4192
pred_bbase 25.0 ep4193
pred_cbase 25.0 ep4194
pred_interactive 25.0 ep4195
pred_2000 25.0 ep4196
pred_5000 25.0 ep4197
pred_floorplanner 25.0 ep4198
pred_assembly 25.0 ep4199
pred_rules_by_area 25.0 ep4200
pred_radial_router 25.0 ep4201
pred_thermal 25.0 ep4202
pred_widis 14.0 ep4203
pred_batch_upgrade 25.0 ep4204
pred_single_pass_batch 25.0 ep4205
pred_multi_pass_batch 25.0 ep4206
pred_smooth_batch 25.0 ep4207
pred_optimum_batch 25.0 ep4208
pred_memory_batch 25.0 ep4209
pred_mitre_batch 25.0 ep4210
pred_pattern_batch 25.0 ep4211
preditor11_adv_plc_tools 14.0 ep4212
hs_route 25.0 ep4213
hs_place_and_route 25.0 ep4214
hs_realize 25.0 ep4215
hs_prototype 25.0 ep4216
hs_scenario 25.0 ep4217
hotstage_verify 25.0 ep4297
hotstage_verify_plus 25.0 ep4298
hotstage_verify_elite 25.0 ep4299
pred_rbase 25.0 ep4300
pred_2000_s 25.0 ep4304
pred_2000_hs 25.0 ep4305
pred_2000_floorplanner 25.0 ep4312
pred_beta 25.0 ep4329
hs_scenario_plus 25.0 ep4332
pred_six_layer_enh 25.0 ep4336
pred_max_layer_enh 25.0 ep4337
pred_conc_placement 25.0 ep4343
multi_board 25.0 ep4415
emc_server 25.0 ep4416
lightning_spice_gen 25.0 ep4463
cp_heavy_cluster 25.0 ep4469
zx0301 13.0 ep4511
pred_classic_autorouter 25.0 ep4512
pred_dragon_autorouter 25.0 ep4513
pred_dragon_strategy 25.0 ep4514
pred_dragon_consultant 25.0 ep4515
pred_intelligent_obj 25.0 ep4516
zx0501 15.0 ep4526
dragon_smart_fanout 25.0 ep4532
dragon_escape_routing 25.0 ep4533
zx1601 10.0 ep4561
pred_smart_fanout 21.0 ep4574
cstar_constraint_browser 25.0 ep4577
pred_netless_router 25.0 ep4584
zx3201 2013.0 ep4585
gradian.exe gradian 2.0 ep4420
rdr2adv.exe emcrules_auth 4.0 ep2698
adviser_dfm_rules 4.0 ep3020
fastrule_auth 4.0 ep3073
senario.exe

3.3 找SEED1和SEED2
依据以上找到的feature,伪造一个enginer.exe文件的license文件如下:

INCREMENT emc_server zuken 25.0 1-jan-2100 uncounted HOSTID=ANY SIGN=0
INCREMENT emc_front_loaded zuken 25.0 1-jan-2100 uncounted HOSTID=ANY SIGN=0
INCREMENT dc_analysis zuken 25.0 1-jan-2100 uncounted HOSTID=ANY SIGN=0

保存为license.dat至C:\flexlm\目录下.OD重新加载enginer.exe文件。根据第一步找VENDOR_NAME的方式找到的关键CALL,在该函数内部第一个跳转的位置下断点,未跳转的第一个CALL下断点,F9运行直至断在未跳转的第一个CALL的位置。F8运行该CALL结束,如下图

然后在命令分别输入以下命令,数据窗口分别得到以下数据

命令 数据
dd [esp+8] 013DECC8 00000004
013DECCC B745B072 data[0]
013DECD0 B75B6161 data[1]
013DECD4 5CD988E0
013DECD8 946F3B1E
013DECDC 9BB0D61F
013DECE0 08B17561
013DECE4 000B000B ver 11.11
013DECE8 31310000 ver 11
dd [esp] 01707100 00000000
01707104 00FBFFF9
01707108 014D20FE job+08
0170710C ED9CB784 job+0c
01707110 AE36D371 job+10

打开calcseed.exe,输入以上信息,得到seed1:0x00089003,seed2:0x00164110,如下图。

3.4 Patch ECC校验

用FlexNet ECC Patch工具去掉需要补丁文件的ECC校验,如下图。

Patch的完整Log如下:

ECC 32bit signature found in gradian.EXE
File size 2396160 bytes
Patched at 00135050h
Patch verification at 00135050h
File is patched.
ECC 32bit signature found in engineer.exe
File size 9965056 bytes
Patched at 006F64E0h
Patch verification at 006F64E0h
File is patched.
ECC 32bit signature found in impulse.exe
File size 3153920 bytes
Patched at 0020C0E0h
Patch verification at 0020C0E0h
File is patched.
ECC 32bit signature found in pred.dll
File size 21173760 bytes
Patched at 00EF48E0h
Patch verification at 00EF48E0h
File is patched.
ECC 32bit signature found in rdr2adv.exe
File size 2577408 bytes
Patched at 001BBAE0h
Patch verification at 001BBAE0h
File is patched.
ECC 32bit signature found in scs.exe
File size 13082624 bytes
Patched at 00926EE0h
Patch verification at 00926EE0h
File is patched.
ECC 32bit signature found in senario.exe
File size 15472640 bytes
Patched at 00B71200h
Patch verification at 00B71200h
File is patched.
ECC 32bit signature found in sysutils.dll
File size 1526272 bytes
Patched at 000E70E0h
Patch verification at 000E70E0h
File is patched.

3.5 计算SIGN
前面位置了一个License.dat文件,里面的SIGN内容为0,并不能通过授权的验证,通过编译 FlexNET SDK 11.9.1来计算正确的SIGN以及HOSTID。
通过lmkg3依据VENDOR_NAME计算出VENDOR_KEY以及TRL_KEY的值,如下图:

使用sdk中的lmrand1.exe工具,命令行中运行lmrand1 -seed,生成LM_SEED的值,如下图:

在sdk中的lm_code.h文件中替换输入以下内容:

#define VENDOR_KEY1 0xd4c8bbc2
#define VENDOR_KEY2 0xc592f46a
#define VENDOR_KEY3 0x753a8c1c
#define VENDOR_KEY4 0x2a195ac8
#define VENDOR_KEY5 0x7b065bc0
#define TRL_KEY1 0x9f1896c6
#define TRL_KEY2 0x789f90a0
#define VENDOR_NAME "zuken"
#define ENCRYPTION_SEED1 0x00089003
#define ENCRYPTION_SEED2 0x00164110
#define LM_SEED1 0xcb469f78
#define LM_SEED2 0x60610e5a
#define LM_SEED3 0x5c576721
#define LM_STRENGTH LM_STRENGTH_239BIT

将makefile文件中的VENDORNAME的值demo修改为zuken,采用VS2013的命令行,运行build.bat,编译完成。

通过sdk中的lmhostid.exe工具获取到本机的hostid。
在Excel中依据上面位置的license的格式,通过公式连接出所有的feature。如下图

将license列复制到txt文件中,保存为license.txt.
在命令行中运行sdk中编译生成的lmcrypt.exe,输入lmcrypt -i license.txt -o license.dat,即输出为文件license.dat,用记事本打开license.dat文件,无误的话已经计算出了正确的SIGN。将此license.dat复制至CADSTAR的Programs目录内,启动程序所有的功能已经授权了。
3.6 编写KEYGEN
这个就没什么难度了,主要是在sdk中lmcrypt.c文件的基础之上增加一个获取hostid的功能。以下是主要代码。

#include "stdafx.h"
#include "lm_code.h"
#include "lmclient.h"
#include "lm_attr.h"
#include "lmprikey.h"
#include <string.h>LM_CODE_NEW(site_code, ENCRYPTION_SEED1, ENCRYPTION_SEED2,VENDOR_KEY1, VENDOR_KEY2, VENDOR_KEY3,VENDOR_KEY4, VENDOR_KEY5,FLEXLM_VERSION, FLEXLM_REVISION, FLEXLM_PATCH, LM_VER_BEHAVIOR,TRL_KEY1, TRL_KEY2, LM_STRENGTH);#define FEATURE_COUNT 93
char feature[FEATURE_COUNT][255] = { "cadstar_gold", "cadstar_silver", "cadstar_bronze", "emcrules_auth", "cadstar_eval", "cadstar_beta", "adviser_dfm_rules", "fastrule_auth", "cadstar_field_solver", "cadstar_library_editor", "cadstar_schematics", "freedom", "cstar_viewer_plus", "cadstar_des_view_ppr", "cadstar_des_view_rep_gen", "embedded_router", "emd_2dcheck", "cadstar_variants", "pred_ibase", "pred_vbase", "pred_bbase", "pred_cbase", "pred_interactive", "pred_2000", "pred_5000", "pred_floorplanner", "pred_assembly", "pred_rules_by_area", "pred_radial_router", "pred_thermal", "pred_widis", "pred_batch_upgrade", "pred_single_pass_batch", "pred_multi_pass_batch", "pred_smooth_batch", "pred_optimum_batch", "pred_memory_batch", "pred_mitre_batch", "pred_pattern_batch", "preditor11_adv_plc_tools", "hs_route", "hs_place_and_route", "hs_realize", "hs_prototype", "hs_scenario", "si_interactive_simulation", "sim_lib_manager", "cadstar_scm_variants", "hotstage_verify", "hotstage_verify_plus", "hotstage_verify_elite", "pred_rbase", "pred_2000_s", "pred_2000_hs", "pred_2000_floorplanner", "cadstar_datasheet_pub", "cadstar_shape_trim", "pred_beta", "hs_scenario_plus", "pred_six_layer_enh", "pred_max_layer_enh", "pred_conc_placement", "cadstar_ds1_interface", "viewer_cadif_import", "multi_board", "emc_server", "si_batch_simulation", "emc_front_loaded", "gradian", "dc_analysis", "lightning_spice_gen", "cp_heavy_cluster", "cadstar_rules_by_area", "zx0301", "pred_classic_autorouter", "pred_dragon_autorouter", "pred_dragon_strategy", "pred_dragon_consultant", "pred_intelligent_obj", "zx0501", "dragon_smart_fanout", "dragon_escape_routing", "idem_model_import", "cadstar_migration_link", "zx1601", "cstar_idf_link", "pred_smart_fanout", "cstar_constraint_browser", "pred_netless_router", "zx3201", "analysis_results_viewer", "cadstar_copper", "cadstar_scm_copper" };
int _tmain(int argc, _TCHAR* argv[])
{LM_CODE_GEN_INIT_NEW(&site_code, ENCRYPTION_SEED1, ENCRYPTION_SEED2,l_priseedcnt, lm_prikey, lm_prisize);VENDORCODE *code = &site_code;LM_HANDLE *lm_job = (LM_HANDLE *)NULL;if (lc_init((LM_HANDLE *)0, VENDOR_NAME, code, &lm_job)){lc_perror(lm_job, "lc_init failed");printf("1");exit(-1);}char hostid[MAX_CONFIG_LINE] = { 0 };if (0 != lc_hostid(lm_job, HOSTID_DEFAULT, hostid)){lc_get_errno(lm_job);printf("2");exit(-1);}else{if (strlen(hostid) > 0){if (*hostid == '"') memmove(hostid, hostid + 1, MAX_CONFIG_LINE - 1);for (size_t i = 0; i < strlen(hostid); i++){if ((hostid[i] == 0x20) || (hostid[i] == 0x00)){hostid[i] = 0x00;break;}}}}char lic_txt[1024 * 512] = {};char tmp[512] = { 0 };for (size_t i = 0; i < FEATURE_COUNT; i++){sprintf(tmp, "INCREMENT %s %s 25.0 1-jan-2100 uncounted HOSTID=%s TS_OK SIGN=0\n", feature[i], VENDOR_NAME, hostid);strcat(lic_txt, tmp);}char *lic_data = NULL, *err = NULL;if (0 != lc_cryptstr(lm_job, lic_txt, &lic_data, code, LM_CRYPT_FORCE, "", &err)){lc_get_errno(lm_job);printf("3");exit(-1);}else{printf(lic_data);lc_free_mem(lm_job, lic_data);}return 0;
}

3.7 附件
Zuken CADSTAR 16 安装文件:http://download.csdn.net/download/chivalrys/10009620
Zuken CADSTAR 16 破解文件:http://download.csdn.net/download/chivalrys/10009618
FlexLM SDK: FlexLM-SDK-11-9-1 链接: https://pan.baidu.com/s/1geULxWR 密码: pjqq
FlexLM SDK 11.11.1 SIG:https://pan.baidu.com/s/1bpKu10j 密码: k8na
lmkg3:http://www.woodmann.com/crackz/FLEXlm/Flexvkg3.rar
calcseed:http://www.woodmann.com/crackz/Tutorials/Nolflex3.zip
ECCPatcher-v2015.04.10:引自 链接: https://pan.baidu.com/s/1bpKu10j 密码: k8na

Zuken CADSTAR 16 破解过程相关推荐

  1. cadence spb 16.5 破解过程实例和使用感受_赤松子耶_新浪博客

    cadence spb 16.5 破解过程实例和使用感受_赤松子耶_新浪博客 Cadence Allegro16.5详细安装具体的步骤 1.下载SPB16.5下来后,点setup.exe,先安装第一项 ...

  2. 一卡通(M1卡)破解过程记录——准备篇

    前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途 其他几篇: 一卡通(M1卡)破解过程记录--理论篇               获取扇区密钥      ...

  3. Android破解过程-滚动的天空

    Android破解-滚动的天空 ##前言 最近看到很多学生在玩滚动的天空这个游戏,这游戏看起来还挺有趣的,于是我也去下载玩了几把.可是,坑呐,这游戏太难了,考验人的快速判断能力和手指滑动速度,玩的很渣 ...

  4. 服务器被攻击统计及被暴力破解过程(二)

    接上篇: 服务器被攻击统计及被暴力破解过程(一) https://blog.csdn.net/qq_33733970/article/details/89641577 5.238.105.208 - ...

  5. 维吉尼亚密码破解过程

    维吉尼亚密码破解过程 问题分析 利用重合指数攻击破解密钥长度 维吉尼亚密码加解密算法的python3实现 给定明文,进行维吉尼亚加密,将密文传给破解密钥的程序 破解维吉尼亚密码密钥长度的python3 ...

  6. 加密狗破解过程中的基本术语

    下面谈到了一些在学习解密过程中经常遇到的基本术语,本人根据自己的经验简单给大家谈一谈.这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把 ...

  7. 一卡通(M1卡)破解过程记录——数据分析(水卡、饭卡及门禁)

    前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途 其他几篇: 一卡通(M1卡)破解过程记录--准备篇              理论篇          ...

  8. SmartDraw2008破解过程总结

    SmartDraw2008破解过程总结 作者:chszs  原创 转载请保留作者名. 按下列步骤完毕,保证能够支持中文. 一.所需软件: 1)SmartDraw2008安装软件: 2)SmartDra ...

  9. AltiumDesigner14.3.X系列软件安装及破解过程

    https://wenku.baidu.com/view/5c3b16e4d4d8d15abe234e9b.html 破解过程可用,安装时我是一直next

  10. 一卡通(M1卡)破解过程记录——理论篇

    前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途 其他几篇: 一卡通(M1卡)破解过程记录--准备篇              获取扇区密钥      ...

最新文章

  1. SAP RETAIL初阶之事务代码MP83 显示一个预测参数文件
  2. 【HAOI2014】走出金字塔
  3. 代码夹带是洪水猛兽吗?
  4. 如何给远程计算机添加用户,如何访问远程计算机以添加/删除/管理用户帐户?...
  5. 一篇总结得超全的前端进阶文章!入门、技巧、方法、书籍、网站...一步到位!
  6. Silverlight 动画性能
  7. centos下将普通命令设置为全局
  8. 关于sql 拼接字符串的问题
  9. 如何将谷歌浏览器设置为默认浏览器
  10. 青年大学习简单窗口使用教程
  11. w ndows10怎么没体验指数,Win10如何使用WinSAT测试Windows体验指数?
  12. 【NAS】Samba配置文件解析
  13. PBS任务只排队,不运行
  14. ssh和scp的使用
  15. 博客系统程序(页面设计)
  16. 三网融合可借鉴欧盟视听新媒体内容规制
  17. 微信公众平台运营的关键是数据实时掌握——数据分析
  18. 《数学之美(第一版)》笔记整理 —— 目录
  19. 用react模仿知乎的用户头像裁剪组件
  20. 苹果6现在多少钱_太阳能路灯现在多少钱一套

热门文章

  1. java 解析umd文件_Webpack UMD:严重依赖...无法静态提取
  2. 泰坦尼克号乘客存活预测详细笔记
  3. 混淆 php,开发简单的PHP混淆器与解混淆器
  4. Google Code Prettify,代码高亮的JS库
  5. mac下bin格式文件解压
  6. baidupcsgo安卓_GitHub - orenbek2019/BaiduPCS-Go: 百度网盘客户端 - Go语言编写
  7. PLC也能制作小游戏----Codesys编写猜数字小游戏
  8. 【毕业设计全篇论文和源码】基于SSM的实体商城商户在线租赁以及信息管理系统的设计与实现(多人在线聊天室,微信扫码支付,在线签字,PDF合同在线生成,商户评分)
  9. nginx代理服务器
  10. 【权限维持】window服务端常见后门技术