?? 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 + -