本文不提供修改方法,AD文章,找方法请绕道省时间,:)
业务QQ:3_4_1_2_2_5_9
如有需要修改硬盘序列号,修改硬盘ID的可以联系我
不用邮寄硬盘 - -!
一般需要修改的朋友都是因为一些程序限制了机器运行,
什么程序限制了,就发这个程序给我,
需手动修改目标程序,没有通用的软件
不回复留言,不常登录新浪博客,有需要联系QQ
(请注名修改硬盘序列号,或者 修改硬盘ID,)
业务QQ:3_4_1_2_2_5_9
以下为C++(VS2008,VC9环境)读取物理硬盘序列号代码,
#include"stdafx.h"
#include"windows.h"
BOOLGetHDID(PCHARpIDBufer)
{
HANDLEhDevice=NULL;
hDevice=::CreateFileA("\\.\PhysicalDrive0",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
if(!hDevice)
hDevice=::CreateFileA("\\.\Scsi0",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
if(!hDevice)returnFALSE;
DWORDdwBytesReturned=0;
GETVERSIONINPARAMSgVersionParsams;
memset(&gVersionParsams,0,sizeof(GETVERSIONINPARAMS));
if(!DeviceIoControl(hDevice,SMART_GET_VERSION,NULL,NULL,&gVersionParsams,sizeof(GETVERSIONINPARAMS),&dwBytesReturned,NULL)
||dwBytesReturned==0||gVersionParsams.bIDEDeviceMap<=0)
{
::CloseHandle(hDevice);
returnFALSE;
}
SENDCMDINPARAMSscip;
memset(&scip,0,sizeof(SENDCMDINPARAMS));
scip.cBufferSize=IDENTIFY_BUFFER_SIZE;
scip.irDriveRegs.bSectorCountReg=1;
scip.irDriveRegs.bSectorNumberReg=1;
scip.irDriveRegs.bDriveHeadReg=0xA0;
scip.irDriveRegs.bCommandReg=0xEC;
BYTEbtBuffer[1024];
memset(btBuffer,0,1024);
if(!DeviceIoControl(hDevice,SMART_RCV_DRIVE_DATA,&scip,sizeof(SENDCMDINPARAMS),
btBuffer,1024,&dwBytesReturned,NULL))
{
::CloseHandle(hDevice);
returnFALSE;
}
intnPos=0x24;//序列号的开始位置,具体请参考SENDCMDOUTPARAMS与IDSECTOR结构
while(btBuffer[nPos]<128)
{
*pIDBufer=btBuffer[nPos++];
pIDBufer++;
}
*pIDBufer=00;
returnTRUE;
}
int_tmain(intargc,_TCHAR*argv[])
{
CHARszHDID[256];
if(GetHDID(szHDID))
printf("n版权所有:S.i.l.e.n.c.e.N.e.t欢迎转载使用nnQQ:3.4.1.2.2.5.9nn硬盘序列号:%sn",szHDID);
else
printf("都读取失败了,啥信息都没有了,修改硬盘序列号,请参考前面n取硬盘序列号失败");
Sleep(10000000);
}