当前位置:首页 > 测试测量 > 测试测量
[导读]这类的帖子很多,不过差不多都是通过调用动态链接库实现的。准确的说实现获取硬盘序列号的工作是由其他语言编写的DLL来实现的。今天我的这例子不用调用动态链接库,直接由LabVIEW来获取硬盘的序列号。 这种方式在一个

这类的帖子很多,不过差不多都是通过调用动态链接库实现的。准确的说实现获取硬盘序列号的工作是由其他语言编写的DLL来实现的。今天我的这例子不用调用动态链接库,直接由LabVIEW来获取硬盘的序列号。

这种方式在一个论坛上看见过,本想参考参考,不过楼主把VI加密了,索性自己做一个和大家分享,讨论讨论。
本程序读取的是硬盘的物理序列号,不同于DLL调用的方法,本方法获取的是硬盘唯一真正物理ID(是固化在硬盘BISO里的SN不是分区的SN),不会出现重复,也不可能被修改(或者说难度很大,而且还有危险,网上看到过说一个叫PC-3000的可以修改,没有尝试过,有哪位胆大拿自己硬盘试验一下,把结果共享一下吧)。可用在软件加密中。
1、原理
大家知道,硬盘相对于CPU来说属于外部设备,而CPU访问外部设备其实就是对外部IO的端口操作,这是硬盘的底层操作,对硬盘的任何操作都可以的,这样只要我们搞清楚如何通过IO指令对硬盘操作和硬盘物理序列号存放的寄存器就可以轻松读取我们所要的硬盘物理序列号了。下面是从网络上搜集的一些资料。
硬盘读写端口的具体含义
对硬盘进行操作的常用端口是1f0h~1f7h号端口,各端口含义如下:
端口号 读还是写 具体含义
1F0H 读/写 用来传送读/写的数据(其内容是正在传输的一个字节的数据)
1F1H 读 用来读取错误码
1F2H 读/写 用来放入要读写的扇区数量
1F3H 读/写 用来放入要读写的扇区号码
1F4H 读/写 用来存放读写柱面的低 8位字节
1F5H 读/写 用来存放读写柱面的高 2位字节(其高 6位恒为 0)
1F6H 读/写 用来存放要读/写的磁盘号及磁头号
第 7位 恒为 1
第 6位 恒为 0
第 5位 恒为 1
第 4位 为 0代表第一块硬盘、为 1代表第二块硬盘
第3~0位 用来存放要读/写的磁头号
1f7H 读 用来存放读操作后的状态
第 7位 控制器忙碌
第 6位 磁盘驱动器准备好了
第 5位 写入错误
第 4位 搜索完成
第 3位 为 1时扇区缓冲区没有准备好
第 2位 是否正确读取磁盘数据
第 1位 磁盘每转一周将此位设为1,
第 0位 之前的命令因发生错误而结束
写 该位端口为命令端口,用来发出指定命令
为50h 格式化磁道
为20h 尝试读取扇区
为21h 无须验证扇区是否准备好而直接读扇区
为22h 尝试读取长扇区(用于早期的硬盘,每扇可能不是 512字节,而是128字节到1024
之间的值)
为23h 无须验证扇区是否准备好而直接读长扇区
为30h 尝试写扇区
为31h 无须验证扇区是否准备好而直接写扇区
为32h 尝试写长扇区
为33h 无须验证扇区是否准备好而直接写长扇区
上面是磁盘0的指令,下面是磁盘1的
171H 1号硬盘错误寄存器
172H 1号硬盘数据扇区计数
173H 1号硬盘扇区数
174H 1号硬盘柱面(低字节)
175H 1号硬盘柱面(高字节)
176H 1号硬盘驱动器/磁头寄存器
177H 1号硬盘状态寄存器
2、操作
知道硬盘的IO操作指令了,下面就是如何在LabVIEW里去实现这些指令了。这方面LabVIEW提供了现成的操作指令。他们就是读端口和写端口。


接下来的工作就很简单了。大致流程就是下面这样了:
2.1等待硬盘就绪
2.2发送命令
; 如果向主控制发送命令,则端口为 1f0h-1f7h
; 如果向副控制发送命令,则端口为 170h-177h
; 1f6h 如果要检测的设备为该IDE接口的主(MASTER)设备,
那么发送 a0,如果为从那么发送 b0
; 1f7h 如果要检测的设备为 ATA 设备那么发送 ec
如果为 ATAPI 设备那么发送 a1
2.3等待硬盘就绪
2.4将返回信息读回
; 注意一定要读满 100h 个字长。也就是寄存器中的所有信息
2.5返回的信息中,型号、序列号、版本号为字形式
; 需要整理到字符串的形式
3、代码及前面板



注意:此程序只在XP下对并口硬盘做了测试。对串口(SATA)硬盘的测试失败。VISTA下由于安全原因可能会被禁止,请将程序保护的选项去除。这个没有详细测试,希望安装了VISTA系统的朋友测试一下,把结果共享出来。
上面图即为程序的全部代码。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭