Xilinx Vivado的License 破解

Vivado工具已有多年历史,而Vivado工具的License网上资源丰富,每过一段时间会有不限定mac地址和时间的license出现,即HOSTID=any和expire=2099这样方便好用的license。

今天介绍一个crack Vivado License检查的思路。没有分析出xilinx license的机制之前,难以想象一家大公司,保护lic工作相当敷衍,较之其他公司的商业工具,其更容易分析。

Vivado license检查的关键函数类,在一个动态运行库中,librdi_common.so此library,在Vivado目录下的lib/lnx64.o/ 的路径下。HLRegMgr这个class包括feature的lic检查功能。

下面是librdi_common.so内部分API清单。通过测试可得,checkoutFeature和checkAvail 函数决定了某feature是否存在和有效,debug中,发现在checkoutFeature和checkAvail函数同时返回1事,license机制由此失效了。无license时,vivado仅使用一个器件类型,即默认485t.

当patch此函数后,强制其返回值为1,此时也能使用其他的器件。

此法绕过Vivado license检查,避免出现的license报警。!!!!仅供学习,请勿用于商业用途!!!!!

HLRegMgr::HLRegMgr()  
HLRegMgr::checkAvail(HLFeature *,bool)
HLRegMgr::checkinFeature(HLFeature *,std::string const&,bool)
HLRegMgr::checkoutFeature(HLFeature *,std::string const&,bool,bool)
HLRegMgr::getAppFeature()
HLRegMgr::getFeature(std::string const&,bool,std::string const&,bool)   .    .    .
HLRegMgr::getRegKey(char const*,lm_handle *&,bool)
HLRegMgr::getSubKey(HLFeature *,std::string const&)

HLRegMgr::refreshAll()
HLRegMgr::releaseFeature(HLFeature *,std::string const&,bool)
HLRegMgr::setAppFeature(HLFeature *)
HLRegMgr::setRegKey(char const*,lm_handle *&,bool)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值