📄 hdinfo.c
字号:
//********************************************
//文件名:HDINFO.C
//功能:1. 读硬盘序列号并进行加密处理
// 2. 建立硬盘序列号密文数据头文件
//********************************************
#include<stdio.h> //1.
#include<stdlib.h> //2.
#include<string.h> //3.
#include<conio.h> //4.
void main() //5.
{ //6.
FILE *fp; //7.
int i,j,k,l; //8.
char ch; //9.
char sh[21]; //10.
unsigned id; //11.
unsigned cw[257]; //12.
unsigned long m=0; //13.
long pw=135792468; //14.设定基数值
//15.
outp(0x1f6,0xa0); //16.向端口写入数据
outp(0x1f7,0xec); //17.向端口写入数据
while(inp(0x1f7)!=0x58 && m++<0xffff) //18.从端口读出数据并进行条件判断
; //19.
for(id=0;id!=256;id++) //20.
cw[id]=inpw(0x1f0); //21.从端口读一个字
for (j=10,k=0;j<=19;j++) //22.
{ //23.
sh[k++]=(char)(cw[j]/256); //24.对数据处理后存入数组
sh[k++]=(char)(cw[j]%256); //25.对数据处理后存入数组
} //26.
sh[k]='\0'; //27.补结束符
l=strlen(sh); //28.测试字符串长
//29.
for(i=0;i<l;i++) //30.
{ //31.
srand(pw); //32.设置伪随机数的基数
ch=rand(); //33.产生伪随机数
sh[i]=sh[i]^ch; //34.对字符串进行异或
pw++; //35.调整基数
} //36.
//37.
fp=fopen("port.h","wb"); //38.以写方式打开头文件
fprintf(fp,"int hdport[20]={"); //39.写入数组格式
for(i=0;i<l;i++) //40.
{ //41.
if(i==9) //42.
fprintf(fp,"\n"); //43.
if(i==(l-1)) //44.
fprintf(fp,"%d};",sh[i]); //45.写入最后一个数据
else //46.
fprintf(fp,"%d,",sh[i]); //47.写入数据
} //48.
fclose(fp); //49.
} //50.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -