首页
社区
课程
招聘
[原创]取硬盘序列号程序的一点注解
发表于: 2013-10-26 11:01 15523

[原创]取硬盘序列号程序的一点注解

2013-10-26 11:01
15523
网上有一个完整的diskid32程序,可以获得硬盘序列号的。我拿过来后,改了几个‘/’,因为在

Windows下这个符号是反向的,改为了‘\\’,然后我程序也调通了,但是不通用。

       三种获得硬盘序列号的函数,我自己的windos7下只有一种有效,通过DeviceIoControl函数

可以得到一个STORAGE_DEVICE_DESCRIPTOR,然后也读出来了序列号。但是程序里面有一个

flipAndCodeBytes(char *)函数,这个貌似是用来反转字节的,似乎与bigendian或者

littleendian有关。我自己的个人电脑上用了这个函数后,字符就错了,但是在单位的电脑上必须得用

这个函数进行转换。我查了MSDN文档如下。

http://technet.microsoft.com/zh-cn/library/ff800833。

我关注到如下一句话:BusType
Specifies an enumerator value of type STORAGE_BUS_TYPE that indicates the type of bus to which the device is connected. This should be used to interpret the raw device properties at the end of this structure (if any).

我怀疑要根据这个BusType来决定得到的原始数据要不要进行flipAndCodeBytes,

BusType定义如下:
typedef enum _STORAGE_BUS_TYPE {
  BusTypeUnknown            = 0x00,
  BusTypeScsi               = 0x1,
  BusTypeAtapi              = 0x2,
  BusTypeAta                = 0x3,
  BusType1394               = 0x4,
  BusTypeSsa                = 0x5,
  BusTypeFibre              = 0x6,
  BusTypeUsb                = 0x7,
  BusTypeRAID               = 0x8,
  BusTypeiScsi              = 0x9,
  BusTypeSas                = 0xA,
  BusTypeSata               = 0xB,
  BusTypeSd                 = 0xC,
  BusTypeMmc                = 0xD,
  BusTypeVirtual            = 0xE,
  BusTypeFileBackedVirtual  = 0xF,
  BusTypeMax                = 0x10,
  BusTypeMaxReserved        = 0x7F
} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;

这些具体的含义都是似懂非懂,怎么跟我写的这个程序联系起来呢?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//