破解LabviewVI文件密码

今天需要查看以前labview项目的一个文件,发现加密了看不到源码,密码又忘记了,试了很多个都不对,无奈只好想着破解。在网上找到了一种思路,试验之后发现是可以的。

原来,vi文件密码的md5值是以二进制形式存储在文件里面的。用二进制方式打开vi文件,查找hex00 00 00 30,这段之后的16个字节就是密码的md5值。按照这种方法可能找到好几个不同的md5值,只有一个是正确的。实际操作中,用notepad++或者sublime text这样的编辑器,很容易就找到了这个值。

查找到md5值

76f3154b83e937edc04996af54848040 这个字符串就可以找到密码。
虽然说md5不能直接逆向破解,但是只要有一个足够大的数据库,把很多字母数字字符串能够求到的md5全部保存下来,那么要反向查询到密码也就很容易了。
https://www.cmd5.com/ 这就是一个很好用的在线解密网站。

上面是手动查询,如果要用python找到md5的话,可以像下面这样:(其实这里对bytes数据的处理并不好,不过考虑到我这里vi文件一般都很小,也无所谓了,因为bytes不能直接用正则表达式,而find只返回第一个匹配的,所以用这种办法是可行的,比全部转成字符串再找要好一些)

def getMd5(path):
    dest=bytes.fromhex('00000030')
    with open(path,'rb') as fs:
        content = fs.read()
        md5Pos = 0
        while content:
            md5Pos = content.find(dest, md5Pos)
            if md5Pos==-1:
                break
            print(content[md5Pos+4:md5Pos+20].hex())            
            md5Pos += 20


if __name__=='__main__':
    getMd5(r'C:\Users\upython\Desktop\xxx.vi')

执行结果有两个符合条件的:


md5查找结果

拿到这两个字符串,再手动上网去解密就好,当然也可以再写爬虫自动去网上查到密码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,290评论 6 13
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,915评论 0 10
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,867评论 5 116
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,523评论 0 5
  • 2017-12-5 星期二 天气:晴 妈妈下班后,看见我在扶着围栏走来走去,拿出了“小蜜蜂...
    元朗妈妈阅读 610评论 0 0