首页
社区
课程
招聘
[下载]读取硬盘物理序列号 工具与VC源码
发表于: 2007-10-2 09:13 10015

[下载]读取硬盘物理序列号 工具与VC源码

2007-10-2 09:13
10015
WINNT下实现的,WIN98下不行,网上搜索了一通,高人给出WIN98下的实现代码要用到汇编,还要取得Ring0级别的控制权,狂晕~~~偶毕业后就把汇编还给老师了,还是老老实实用C++代码吧。具体的C++和汇编源码可以在此找到:c19K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4*7z5o6S2Q4x3X3g2F1k6i4c8Q4x3V1j5J5x3o6l9@1i4K6u0r3y4#2)9J5k6o6N6Q4x3V1j5J5x3K6f1J5y4e0N6Q4x3X3g2Z5N6r3@1`.

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

实现原理:
1、  CreateFile可以打开物理设备和串口等,使用CreateFile("\\\\.\\PHYSICALDRIVE0",…)打开硬盘,其中的0为0-255,视乎有几个硬盘了。
2、  使用DeviceIoControl函数对打开的设备进行通信,发送指定命令,根据返回的PSENDCMDOUTPARAMS结构,得到物理序列号和模型号,把物理序列号和模型号格式化为一定的格式输出。

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

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是的st的串口硬件,没有物理序列号??不是读不了??
我以前就发现了,安装一个软件,机器号为000~~
2007-10-2 10:47
0
雪    币: 465
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
呵呵,我的西数SATAII能读出,没问题。
2007-10-2 22:04
0
雪    币: 219
活跃值: (58)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
这些没什么用,一格式化硬盘,就会变了。。
2007-10-4 10:46
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
5
硬盘序列号是不会变的。

蛋蛋自己的程序?
2007-10-5 00:08
0
雪    币: 239
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
老K你又不懂了撒,蛋蛋本来就是某知名壳作者。
2007-10-5 00:56
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
PC3000可以修改硬盘物理序列号。
2007-10-18 13:26
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
st的怎么会没序列号?狂晕...(没物理的)
2007-10-18 23:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好东西
2007-10-20 02:02
0
雪    币: 200
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好东西啊  谢谢啦
2008-1-6 14:21
0
雪    币: 5945
活跃值: (242)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢,共享!
2008-1-6 15:15
0
游客
登录 | 注册 方可回帖
返回