edog

冰冻热狗
数据加载中……

读取硬盘物理序列号

WINNT下实现的,WIN98下不行,网上搜索了一通,高人给出WIN98下的实现代码要用到汇编,还要取得Ring0级别的控制权,狂晕~~~偶毕业后就把汇编还给老师了,还是老老实实用C++代码吧。具体的C++和汇编源码可以在此找到:http://www.cz88.net/2004/7-7/235257.htm

 

读取硬盘物理序列号有什么用?用来对软件加密最好了,别告诉我你是用C盘的逻辑序列号来加密的,那个冬冬可是可以用程序改的。不过听说现在连硬盘的物理序列号也可以改,不知道怎么才能改呢,高人指点一下。这个程序主要是针对有序列号的IDE HDD而言, 对于没有序列号或SCSI HDD硬盘则无能为力,这是其局限性。

 

实现原理:

1、  CreateFile可以打开物理设备和串口等,使用CreateFile("\\\\.\\PHYSICALDRIVE0",…)打开硬盘,其中的00-255,视乎有几个硬盘了。

2、  使用DeviceIoControl函数对打开的设备进行通信,发送指定命令,根据返回的PSENDCMDOUTPARAMS结构,得到物理序列号和模型号,把物理序列号和模型号格式化为一定的格式输出。
DiskInfo.jpg

顺便把各个逻辑驱动器的信息也读取一下,包括卷标,驱动器类型和逻辑序列号等。主要是用GetLogicalDriveStrings和GetVolumeInformation和GetDriveType几个API。图示是偶的机器上的结果。
程序:diskinfo.zip

posted on 2005-12-01 02:23 冰冻热狗 阅读(29200) 评论(43)  编辑 收藏 引用 所属分类: 应用程序

评论

# re: 读取硬盘物理序列号  回复  更多评论   

获取硬盘信息的源文件可不可以发给我学习学习?我邮箱lvbqing@gmail.com
跪谢
2006-01-24 11:40 | 蓝冰

# re: 读取硬盘物理序列号  回复  更多评论   

晕~~~兄弟哟,这个文章的开头不是有源代码的链接吗:
http://www.cz88.net/2004/7-7/235257.htm
2006-01-24 16:31 | 冰冻热狗

# re: 读取硬盘物理序列号  回复  更多评论   

我的怎么只能读出一个盘啊
2006-03-03 11:09 | 笑笑生

# re: 读取硬盘物理序列号  回复  更多评论   

不错
2006-03-11 13:17 | sgz

# re: 读取硬盘物理序列号  回复  更多评论   

GETVERSIONOUTPARAMS 在哪里定义的啊,找不到
2006-03-11 13:41 | sgz

# re: 读取硬盘物理序列号  回复  更多评论   

ntdddisk.h
是NTDDK中的冬冬,安装了DDK之后就有了,如果你需要,留下邮箱。。。
2006-03-13 23:04 | 冰冻热狗

# re: 读取硬盘物理序列号  回复  更多评论   

请教
如果是sata硬盘怎么读啊
smart 特性呢
2006-06-16 12:38 | kuko

# re: 读取硬盘物理序列号  回复  更多评论   

SATA是新技术,应该不支持sata硬盘。我没用过sata硬盘,所以也不清楚。
2006-06-22 12:50 | 冰冻热狗

# re: 读取硬盘物理序列号  回复  更多评论   

硬盘物理序列全球不维一,可以更改,方法已变得简单。一分钟就可以搞定!所以采用读取硬盘物理序列号用来对软件加密已经变得容量破解!还好现在知道方法的人不太多。我也才学会.....如果一旦传播开来的话,后果对那些采用读取硬盘物理序列号用来对软件加密的后果严重

# re: 读取硬盘物理序列号  回复  更多评论   

HI,源代码的链接http://www.cz88.net/2004/7-7/235257.htm 没有用了,能不能发一份源代码给我,yingyi8989@163.com.
先谢过了。
2006-11-22 14:57 | yingyi8989

# re: 读取硬盘物理序列号  回复  更多评论   

SATA 硬盘可以正确检测出来。
2006-12-01 18:19 | seeker

# re: 读取硬盘物理序列号  回复  更多评论   

oo~ 此文章是常青树,学习,谢过~
2006-12-29 23:38 | ZeroHeart

# re: 读取硬盘物理序列号  回复  更多评论   

http://www.cz88.net/2004/7-7/235257.htm 的链接失效,能否提供原文?
偶的email: huayuliang@gmail.com or huayuliang@126.com

不胜感激~
2007-01-31 13:57 | Dreamcat

# re: 读取硬盘物理序列号  回复  更多评论   

原链接失效偶也没得办法,下载我的程序里面有做好的类:
http://www.cppblog.com/Files/edog/DiskInfo.zip
直接调用或者参考里面的源代码就可以了。
2007-01-31 22:37 | edog

# re: 读取硬盘物理序列号  回复  更多评论   

Windows98下不可用,
CreateFile 返回值-1
2007-05-18 09:51 | ycjcounter@163.com

# re: 读取硬盘物理序列号  回复  更多评论   

本文开头就提到在WIN98下不可用的。
2007-05-18 11:38 | 冰冻热狗

# re: 读取硬盘物理序列号  回复  更多评论   

谢谢啊,代码可以工作。
2007-07-25 16:59 | tao

# re: 读取硬盘物理序列号  回复  更多评论   

@tao

代码怎么工作的啊??不会用啊!!
2007-08-01 13:54 | wan

# re: 读取硬盘物理序列号  回复  更多评论   

哪位老大出来帮忙解释一下是怎么用的啊!!
2007-08-02 00:41 | wan

# re: 读取硬盘物理序列号  回复  更多评论   

老兄:NTFS格式的读不出来!
2007-10-15 16:56 | lzp

# re: 读取硬盘物理序列号[未登录]  回复  更多评论   

能更改吗?
2008-03-22 14:19 | DYH

# re: 读取硬盘物理序列号[未登录]  回复  更多评论   

软件改不了。
2008-03-24 09:23 | 冰冻热狗

# re: 读取硬盘物理序列号[未登录]  回复  更多评论   

有辦法知道IDE/SATA 是哪一個port嗎?

ide0 的master/slave
ide1 的master/salve
SATA 的port之類的

關注
2008-04-24 23:34 | Justin

# re: 读取硬盘物理序列号  回复  更多评论   

HI,源代码的链接http://www.cz88.net/2004/7-7/235257.htm 没有用了,能不能发一份源代码给我,jsjj_fujun@163.com.
先谢过了。
2008-08-10 16:04 | fujun

# re: 读取硬盘物理序列号  回复  更多评论   

但是如果是 users 组的用户就读不出来了,如何解决啦
2008-12-12 11:35 | 访客

# re: 读取硬盘物理序列号  回复  更多评论   

diskinfo.zip源文件不全啊!里面的exe执行显示正确,但调用MyDiskInfo.h/.cpp就得不到正确结果!缺少DiskInfo.h/.cpp等文件!能补全吗?谢谢!
2008-12-19 12:00 | 访客

# 读取硬盘物理序列号  回复  更多评论   

能不能发一份源代码给我,leefeifei01@gmail.com.
先谢过了。
2008-12-26 12:14 | fei

# re: 读取硬盘物理序列号  回复  更多评论   

能发给我一份源码么?
545824728Qqq.com
2009-04-01 13:57 | tianyun

# re: 读取硬盘物理序列号  回复  更多评论   

不错不错
2009-04-02 17:39 | 创意产品网

# re: 读取硬盘物理序列号  回复  更多评论   

DiskInfo.h在哪里呀
2009-09-01 19:49 | 任我笑

# re: 读取硬盘物理序列号  回复  更多评论   

您好,我想编译,可找不到diskinfo.cpp,diskinfo.h,麻烦您把它们发给我,万分感谢! 18918737!qq.com
2009-10-19 17:29 | aida

# re: 读取硬盘物理序列号  回复  更多评论   

非常好的文章,谢谢楼主分享!
2009-12-01 15:18 | 创意产品批发

# re: 读取硬盘物理序列号  回复  更多评论   

写得很不错,正好能够用上,不知道能不发一份源码给我啊,下的程序里面的不全啊,万分感谢
yanyun110119@yahoo.com.cn
2010-03-17 19:01 | yanyun

# re: 读取硬盘物理序列号  回复  更多评论   

牛人啊

请教 vc 如何入门
2010-04-12 17:02 | 李韩

# re: 读取硬盘物理序列号  回复  更多评论   

能否给一份源码呀,下载的程序不全,mail:zy90221@sina.com,多谢
2010-07-28 10:47 | Rock

# re: 读取硬盘物理序列号  回复  更多评论   

windows7 的序列号是 空的 !!!
2010-09-09 14:56 | windows7用户

# re: 读取硬盘物理序列号[未登录]  回复  更多评论   

您好,我想编译,可找不到diskinfo.cpp,diskinfo.h,麻烦您把它们发给我,万分感谢! 849745795@qq.com
2010-09-23 08:44 | 流星

# re: 读取硬盘物理序列号[未登录]  回复  更多评论   

可以发一份源码吗?我现在想在windows 7上获取硬盘的序列号,有用C#做了个程序,但在windows7 下只能以管理员的身份才可以获取到。我的邮箱:zhenyanxu@126.com;
2011-01-20 17:48 | mars

# re: 读取硬盘物理序列号  回复  更多评论   

为什么博主这东西这么方便呢= =
2011-05-18 03:56 | SXiong

# re: 读取硬盘物理序列号  回复  更多评论   

樓主,請問如何知道序列號或者型號是在哪些位置呢?比如樓主代碼中序列號在10~19,型號在27~46,那麼我們如何知道這些信息呢?
2011-09-13 18:11 | Serval

# re: 读取硬盘物理序列号  回复  更多评论   

您好,我想编译,可找不到stdafx.h,diskinfo.h,麻烦您把它们发给我,万分感谢! acmersch@163.com
2011-09-21 20:44 | Nemo

# re: 读取硬盘物理序列号  回复  更多评论   

能不能把你那个exe可执行文件的源代码发给我一份,万分感谢。邮箱:yongqingliu@yeah.net...
2011-10-31 16:59 | 水云间

# re: 读取硬盘物理序列号  回复  更多评论   

可以吗?我找好多获取的有的是卷标号的,有的是别的,基本上没有和硬件检测得到的序列号一样咋办?
2015-06-29 21:09 | 魏亮

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理