本篇经验是年前写好的,犹豫了很久要不要发出来,如有违规请联系删除。
写在最前:本文的目的是为了通过了解VI的密码原理(简单的)来增强和保护自己的VI,不提倡破解他人知识产权的VI和库,保护知识产权!
问题来源,之前写的一个子vi在设置保护密码后,忘记了。故在网上找了很多的教程来指导如何破解子vi。主要又三类:
第一类:自编遍寻软件,耗时耗力。(本
论坛就有,如同:
https://bbs.elecfans.com/forum.p ... e=8&ordertype=1)
第二类:提交网上破解(也是针对于此)。(http://www.
labview.help/decode?dsfasd,https://www.hmilch.net/h/labview)
第三类:花钱破解。(在网上也有看到过,好多是坑,不建议)
为了破解我忘记密码的程序,在网上搜寻了好久,看到了一篇“授人以渔”的方法(https://www.jianshu.com/p/6c82e1d34b9d),之前遇到过库密码也忘记了的情况,就给该文的作者留言询问。没有收到答复,看了他的其他博文,感觉不是一个强LV用户,就在思考他是怎么找到MD5的位置的。我不是专业的计算机出身,只能靠归纳和试错的方法。后来建立了一个简单的库,试了以下果然找到了。基于MD5的密码保护,破解有方法,相应的保护也是有策略的。
归纳以上第二类和所提到的博文方法,都是通过MD5值,通过网上已有的密码库来破解的。对应的,如果你设置的密码的MD5值在密码库中没有,则所有的破解在短期内都是无效的(当然随着时间的增长,存在被MD5值被破解的可能,可能性非常小)。
1、关于VI的破解,简书中的博文和www.hmilch.net破解过程都提到了。下面就是通过前述网址替换的例子,看到原先的vi的MD5 Hash值,然后通过Google的密码库找到的。
当我们的密码足够强,即使知道MD5 Hash值,也破解不了,如下图(我设的密码是12.!!.)。
2、关于破解库密码,网上目前没有看到有替换库密码的先例,但有时候我们的vi是以库设密码的方式保存的。
当我们用NotePad++打开后,很容易就发现文件的密码的MD5 Hash值,如下图所示是一个我建立的测试库。红色框中就是MD5值。
写到这个地方,可能有人会问,将文件中的MD5替换为自己已知的MD5 Hash值可不可以,很不幸的,当然不可以,这就是VI的最后会给文件整体产生一个校验MD5 Hash值,如上图蓝色框中所示,如果替换了红色框中的值,则蓝色框中的值肯定会改变,这是由于MD5对于一个文件只有唯一的一个MD5值决定的。所以不要害怕当你的密码值足够强的时候别人破解。
若有违规和不当的地方,请批评指正。