標題:
C語言練習(xí)作品(加鎖程序1.0)
[打印本頁]
作者:
liuyuxi
時間:
2015-1-11 01:08
標題:
C語言練習(xí)作品(加鎖程序1.0)
本帖最后由 liuyuxi 于 2015-1-11 01:13 編輯
增加了隱私隱藏功能~~~
修正了 清除加鎖配置后 程序會變成未注冊的BUG~~
軟件界面:
源代碼:
==========================================================================
#include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/
#include<stdlib.h>/*加載標準函數(shù)庫頭文件*/
#include<string.h>
#include<windows.h>
int i=3,a=0,d=0;/*聲明全局變量*/
int h=5;/*設(shè)定功能選擇*/
int y=4;
/*原型函數(shù)聲明*/
int xieru();
int yanzhen();
int zhu();
int tishi();
int yizhuce();
int jiamiweizhuce();
int jiamiyizhuce();
int jiemiweizhuce();
int jiemiyizhuce();
int u();
int autoo();
int dell();
int yc();
/************************作者聲明*****************************/
int xs()
{
printf("\n********************************************************************");
printf("\n 此程序為C語言編寫,編譯器為:DEV-C++ 4.9.9.2 多國語言版");
printf("\n\n 愿結(jié)交對C語言深感興趣并研究過C語言的朋友\n 若有任何建議或愿共同探討請聯(lián)系QQ:1007566569\n 加密方面,采用垃圾算法,純屬做練習(xí),各位不必當(dāng)真。\n");
printf("\n********************************************************************\n");
printf("\n作品名稱:加鎖程序(版本:2.0)\n\n作品目的:增加對條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)、調(diào)用函數(shù)的方法、文件 處理指令,以及DOS命令\n\n作品功能:a:實現(xiàn)注冊驗證及對數(shù)字進行加密、解密功能\n b:了解加入開機啟動項的方法和利用文件處理知識..實現(xiàn)移動設(shè)備對電腦進行加 鎖功能~~~~還加了個隱私隱藏功能呢!\n\n作品改進:利用軟件爆破原理改進了程序輸入正確序列號重啟后仍需再次輸入序列號的缺陷 根據(jù)木馬自釋放原理,增加了U盤加鎖功能(O(∩_∩)O可以當(dāng)惡作劇玩哦!)\n\n作品缺陷:程序判斷用戶的選擇只能用數(shù)字否則出錯(嘗試用過char類型),只能加密\n 9位數(shù)字否則不能正確解密(或許與類型溢出有關(guān)),以上原因尚不明確!\n");
printf("\n********************************************************************\n");
return 0;
}
int aac()
{
printf("\n\n O(∩_∩)O哈哈~,請選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機(需注冊用戶)\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里(需注冊用戶))\n\n 【5】:注冊\n\n 【0】:退出\n\n ");
return 0;
}
int aac1()
{
system("cls");
printf("\n\n O(∩_∩)O哈哈~,不能亂選哦,請再次認真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機(需注冊用戶)\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里(需注冊用戶))\n\n 【5】:注冊\n\n 【0】:退出\n\n ");
return 0;
}
int aas()
{
printf("\n\n O(∩_∩)O哈哈~,請選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里)\n\n 【0】:退出\n\n ");
return 0;
}
int aas1()
{
system("cls");
printf("\n\n O(∩_∩)O哈哈~,不能亂選哦,請再次認真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里)\n\n 【0】:退出\n\n ");
return 0;
}
/************************作者聲明*****************************/
int main()/*聲明主函數(shù),每個C程序必須具備的*/
{
system("COLOR 0a");
system("title 歡迎使用由【笨笨♂豬】設(shè)計的程序~~");
printf("\n\t 聊聊\n\n\t ↖(^ω^)↗哈哈,一個月嘞,在惠州實踐了\n\t22天,╮(╯▽╰)╭~~當(dāng)普工簡直是墮落,本\n\t來滿滿的自信和積極的上進心,在那不過幾天,\n\t就差點全被侵蝕掉了..真恐怖!還好那些管理\n\t員蠻不錯,就是有些員工超猥瑣的!也有些員\n\t工很黃很暴力⊙﹏⊙b汗..更離譜的是居然調(diào)\n\t戲女學(xué)生..吖的,超想買塊豆腐砸死他們! \n\t(#‵′)靠~..\n\t 笨笨豬,謝謝你!謝謝你在我最失落時給我\n\t動力,給我信心!讓我的C再次突破!我們是最\n\t棒的↖(^ω^)↗!呵呵~本次靈感來自軟件爆破\n\t原理,利用此原理可以改進重啟程序后需要再\n\t次輸入序列號的缺陷。還有個缺陷是只能加解\n\t密9位數(shù)字,我覺得應(yīng)該是產(chǎn)生溢出了吧,郁悶~~\n\t這次加上了比較實用的功能=》用U盤給電腦加鎖..\n\t以及文件隱藏~~~\n\n\n\n");
system("pause");/*程序掛起*/
system("cls");
yanzhen();
}
/***************************************主調(diào)代碼*******************************************/
int zhu()/*自定義zhu函數(shù)*/
{
int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
xs();
system("pause");
system("cls");
aac();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
while(a>h)/*設(shè)定循環(huán)條件,達到輸入錯誤選項即可循環(huán)執(zhí)行確認選擇功能指令*/
{
aac1();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
}
switch(a)/*判斷語句,在c++稱為開關(guān)語句*/
{
case 1:/*若a等于1則運行下面代碼*/
printf("\n (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說明*/
printf("請輸入序列號:\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的序列號并賦值給變量a*/
if(a!=1007566569)/*若用戶所輸入的序列號不等于1007566569則執(zhí)行下面的指令,否則跳過下面的指令*/
jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/
else/*若等于1007566569則運行下面指令*/
{
xieru();
jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
}
break;/*跳出判斷語句避免“失敗經(jīng)過”*/
case 2:/*如果a等于2則運行下面代碼*/
printf("\n (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說明*/
printf("請輸入序列號:\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的序列號并賦值給變量a*/
if(a!=1007566569)/*若用戶所輸入的序列號不等于1007566569則執(zhí)行下面的指令,否則跳過下面的指令*/
jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/
else/*若等于1007566569則運行下面指令*/
{
xieru();
jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
}
break;/*跳出判斷語句避免“失敗經(jīng)過”*/
case 3:
case 4:
printf("\n\a\a對不起!您是未注冊用戶...\n\a");
system("pause");
zhu();
case 5:
for(;;)
{
printf("請輸入序列號:");
scanf("%d",&i);
if(i!=1007566569)
{
printf("\n暈~~請再到我空間看清源代碼~~\n\n\a");
continue;
}
else{
xieru();
printf("\n\n\aO(∩_∩)O~~注冊成功咯!哈~~~\n\n");
system("pause");
yanzhen();
}
}
case 0:/*若a等于0則運行下面代碼*/
exit(0);/*退出程序*/
break;/*跳出判斷語句避免“失敗經(jīng)過”*/
}
}
int tishi()/*自定義tishi函數(shù)*/
{
int q;/*聲明變量*/
printf("\n\a\a\a ╮(╯▽╰)╭對不起,您使用的次數(shù)已達到試用版的上限!\n\n"); /*警告用戶*/
printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個秘密哈,若想再次使用可以再次運行本程序,照樣\n還可以使用三次。不過,如果你這樣做的話,也只能說明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
printf("\n返回主菜單請輸入數(shù)字【3】,退出請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&q);/*讀取用戶所輸入數(shù)值并存入變量q*/
if(q==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
zhu();
else/*若不等于則運行下面代碼即退出,達到按任意數(shù)字鍵退出的目的*/
exit(0);/*退出程序*/
}
int yizhuce()/*自定義yizhuce函數(shù)*//*此函數(shù)已去除驗證序列號的功能*/
{
int a;/*聲明整數(shù)變量a、i,并把賦值3給i*/
xs();
system("pause");
system("cls");
aas();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
while(a>y)/*設(shè)定循環(huán)條件,達到輸入錯誤選項即可循環(huán)執(zhí)行確認選擇功能指令*/
{
aas1();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
}
switch(a)/*判斷語句,在c++稱為開關(guān)語句*/
{
case 1:/*若a等于1則運行下面代碼*/
jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
break;/*跳出條件語句避免“失敗經(jīng)過”*/
case 2:/*若a等于2則運行下面代碼*/
jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
break;/*跳出條件語句避免“失敗經(jīng)過”*/
case 3:
u();
yanzhen();
case 4:
yc();
yanzhen();
case 0:/*若a等于0則運行下面代碼*/
exit(0);/*退出程序*/
break;/*跳出條件語句避免“失敗經(jīng)過”*/
}
}
/*************************主調(diào)用代碼**************************/
/*******************************功能實現(xiàn)代碼**********************************/
/******************************加密功能代碼************************************************/
int jiamiweizhuce()/*聲明自定義jiamiweizhuce函數(shù)(未注冊限制使用)同時聲明變量*/
{
/*以下為未注冊限制代碼↓↓*/
while(i!=0)/*循環(huán)語句,設(shè)定條件為3次,由聲明變量時確定,達到三次后跳出循環(huán)停止運行算法*/
{
printf("\n請輸入一組需加密的數(shù)字【未注冊】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a+100000;/*進行加密算法↓↓*/
a=a+100009;
a=a+100052;
a=a+100878;
a=a+108546;
a=a+113545;
a=a+314123;/*進行加密算法↑↑*/
i--;/*運行算法一次則i減1,達到三次后滿足循環(huán)條件即運行3次算法,則i=3-3=0*/
printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)加密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break;/*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
zhu();
tishi();
}
int jiamiyizhuce()/*聲明自定義jiamiyizhuce函數(shù)(已注冊無限制使用)*/
{
/*以下為已注冊無限制代碼↓↓*/
for(;;)/*循環(huán)語句,不設(shè)定條件,可無限次運行算法指令*/
{
printf("\n請輸入一組需加密的數(shù)字【已注冊,可無限使用】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a+100000;/*進行加密算法↓↓*/
a=a+100009;
a=a+100052;
a=a+100878;
a=a+108546;
a=a+113545;
a=a+314123;/*進行加密算法↑↑*/
printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)加密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break; /*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
yizhuce();
}
/******************************加密功能代碼************************************************/
/******************************解密功能代碼************************************************/
int jiemiweizhuce()/*聲明解密未注冊(限制使用)函數(shù)*/
{
/*以下為未注冊限制代碼↓↓*/
while(i!=0)/*循環(huán)語句,設(shè)定條件為3次,達到三次后跳出循環(huán)語句即i等于3*/
{
printf("\n請輸入一組需解密的數(shù)字【未注冊】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
a=a-100009;
a=a-100052;
a=a-100878;
a=a-108546;
a=a-113545;
a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
i--;/*運行算法一次則i加1,達到三次后滿足循環(huán)條件*/
printf("\n\a ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出真實密碼*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)解密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break;/*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
zhu();
tishi();
}
int jiemiyizhuce()/*聲明解密已注冊(解除限制)函數(shù)*/
{
/*以下為已注冊無限制代碼↓↓*/
for(;;)/*循環(huán)語句,不設(shè)定條件*/
{
printf("\n請輸入一組需解密的數(shù)字【已注冊,可無限使用】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
a=a-100009;
a=a-100052;
a=a-100878;
a=a-108546;
a=a-113545;
a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
printf("\n\n\a ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】\n\n",a);/*算法完成輸出真實密碼*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)解密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break; /*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
yizhuce();
}
/******************************解密功能代碼************************************************/
/******************************U盤加鎖代碼************************************************/
int u()
{
system("cls");
FILE *p;
char pan[2]={0},password[50]={0},pd[]={"if not exist "},fu[]={":\\"},exi[]={" shutdown.exe -s -t "},ok[50],k[100],j[60];
printf("\n\n\t【1】為計算機加鎖\n\n\t【2】清除加鎖功能\n\n\t【3】返回\n\n\t");
scanf("%d",&i);
if(i==1)
{
system("cls");
printf("\n\n\t原理:每次開機都會檢測所指定的磁盤里的文件名(所以要設(shè)定開機啟動項),如果\n\t有則為合法用戶,可正常使用計算機。沒有則視為\"小偷\"開機后由您指定的時間(秒\t)關(guān)機~");
printf("所指定的文件名可以自定,程序會在該可移動磁盤中創(chuàng)建一個由你指定的文 件名的文件\n");
printf("\n\t注意,此程序檢測文件名,并不檢測里面的內(nèi)容..如果您輸入的為te12.txt 那么 只要您指定的磁盤根目錄有文件是此文件名即可當(dāng)成為開機密鑰\n\t(這意味著磁盤里的每一個文件都可當(dāng)成開機密鑰,增強隱蔽性),所以你可以在tr12 .txt里面加上一些內(nèi)容加以掩飾\n\n");
printf("\n\t請確定是否已插入可移動磁盤~~~~\n");
system("pause");
text:
printf("\n\n請輸入可移動磁盤盤符(輸入字母即可,如輸入g):");
scanf("%s",pan);
printf("\n\n請設(shè)定程序需檢測認證可移動磁盤根目錄上的文件名(也可以自定文件名):");
scanf("%s",password);
/****************檢測是否有該文件存在*******************/
strcpy(ok,pan);
strcat(ok,fu);
strcat(ok,password);
if((p=fopen(ok,"r"))==NULL)
{
printf("\n\n╮(╯_╰)╭檢測可移動磁盤無您指定的文件名,程序?qū)⒆詣觿?chuàng)建此文件\n");
p=fopen(ok,"w");
if((p=fopen(ok,"r"))==NULL)
{
printf("\n\n╮(╯_╰)╭無法寫入..請確定可移動磁盤是否被設(shè)為寫保護或接口接觸不良..\n\n");
printf("\n\n重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
goto text;
else if(i==0)
return 0;
else
exit(0);
}
else
printf("\n\n\\(^o^)/~文件創(chuàng)建成功...");
}
/*檢測是否有該文件存在*/
printf("\n\n請設(shè)定無此密碼文件時登陸系統(tǒng)后關(guān)機時間(秒)(建議輸入0,即開機后立即關(guān)機):");
scanf("%s",j);
strcpy(k,pd);
strcat(k,pan);
strcat(k,fu);
strcat(k,password);
strcat(k,exi);
strcat(k,j);
if((p=fopen("C:\\WINDOWS\\love.bat","w"))==NULL)
{
printf("\n\n\a對不起,可能因為系統(tǒng)盤被寫保護,無法寫入配置文件....\n");
system("pause");
}
else
{
fprintf(p,k);
fclose(p);
system("attrib +s +r +h +a %systemroot%\\love.bat");
printf("\n\n即將設(shè)為開機啟動項..安全防護軟件可能會提示請按同意..\n");
system("pause");
autoo();
printf("\n\n已設(shè)置完成..重啟后立即生效~\n");
}
system("pause");
system("cls");
return 0;
}
else if(i==2)
dell();
else if(i==3)
yanzhen();
else
exit(0);
}
/******************************U盤加鎖代碼************************************************/
/***************************隱私隱藏功能***********************/
int yc()
{
system("cls");
printf("\n\n 由于我對DOS命令不太熟悉..所以操作會有點繁.請按提示操作吧~(*^__^*) 嘻嘻……\n");
system("pause");
a:
printf("\n【1】先把要隱藏的文件壓縮為RAR格式(最好就加個密碼)并改名為“隱藏掉”\n");
system("pause");
printf("\n【2】然后把掩飾要隱藏文件的文件改名為“掩飾它”(建議圖片格式。‐n");
system("pause");
printf("\n【3】再把這兩個放到D盤根目錄。即直接丟進D盤,不要放在D盤的任何文件夾里!\n");
system("pause");
printf("\n【4】你確定做好以上的步驟了嗎?返回輸入1,繼續(xù)輸入0\n");
scanf("%d",&i);
if(i==1)
goto a;
else
{
system("copy /b d:掩飾它.????+d:要隱藏的.rar d:成功隱藏.????");
printf("\n\n若出現(xiàn)“已復(fù)制 1個文件”則成功隱藏了該文件,同時會在D盤下生成一個名叫\(zhòng)n“成功隱藏”的文件,然后再它命名為你喜歡的名字;若出現(xiàn)“已復(fù)制 0個文件”\n則該文件沒被隱藏,原因可能是你沒按照上面所指示的步驟去做~\n請輸入1返回;\輸入2返回主菜單~~;輸入0退出\n");
scanf("%d",&i);
if(i==1)
goto a;
else if(i==2)
yanzhen();
else
exit(0);
}
}
/***************************隱私隱藏功能***********************/
/*******************************功能實現(xiàn)代碼**********************************/
/***************************注冊信息保存代碼************************/
int xieru()
{
FILE *fptr;
char name[20]={"\\(^o^)/~,成功咯~"};
if((fptr=fopen("C:\\WINDOWS\\system32\\愛夢想.love","w"))==NULL)
{
printf("\n\t暈啊~注冊信息保存失敗..是不是裝了什么磁盤保護軟件呢?或者中病毒?\n");
system("pause");
}
else
{
fprintf(fptr,name);
fclose(fptr);
system("attrib +s +r +h +a C:\\WINDOWS\\system32\\愛夢想.love");
}
return 0;
}
/***************************注冊信息保存代碼************************/
/***************************注冊信息讀取代碼************************/
int yanzhen()
{
FILE *fptr;
int i;
char a[]={"\\(^o^)/~,成功咯~"},d[20];
if((fptr=fopen("C:\\WINDOWS\\system32\\愛夢想.love","r"))==NULL)
zhu();
else
{
for(i=0;!feof(fptr);i++)
{
d[i]=fgetc(fptr);
}
fclose(fptr);
if(a[6]==d[6])
yizhuce();
else
zhu();
}
}
/***************************注冊信息讀取代碼************************/
/***************************設(shè)置開機啟動項代碼***********************/
/*設(shè)置開機啟動*/
int autoo()
{
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult;
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
ret=RegSetValueEx(hkResult,"love.bat"/* 注冊表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
if(ret==0){
printf("\n\n成功加入啟動項\n");
RegCloseKey(hkResult);
}
else {
printf("\n\n\a對不起,可能因為安全防護軟件阻攔,無法設(shè)為開機自啟動....\n");
system("attrib -s -r -h -a %systemroot%\\love.bat");
system("del %systemroot%\\love.bat");
printf("\n\n\t重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
return 0;
else
exit(0);
}
}
/*清除開機啟動*/
int dell()
{
FILE *fptr;
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult;
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
ret=RegSetValueEx(hkResult,"love.bat"/* 注冊表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
if(ret==0){
RegCloseKey(hkResult);
if((fptr=fopen("C:\\WINDOWS\\love.bat","r"))==NULL)
{
printf("\n\n\t\a╮(╯_╰)╭未發(fā)現(xiàn)配置文件呢!~~應(yīng)該已經(jīng)清除了吧..( ⊙o⊙ )?\n");
}
else
{
fclose(fptr);
system("attrib -s -r -h -a %systemroot%\\love.bat");
system("del %systemroot%\\love.bat");
printf("\n\n\t成功清除啟動項\n");
printf("\n\n\t成功刪除配置文件");
printf("\n\n\t成功清除開機加鎖功能~~~");
}
printf("\n\n\t重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
yizhuce();
else
exit(0);
}
else {
printf("\n\n\a對不起,可能因為安全防護軟件阻攔,無法清除開機自啟動....");
printf("\n\n重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
zhu();
else
exit(0);
}
}
==========================================================================
復(fù)制代碼
作者:
liuyuxi
時間:
2015-1-11 01:09
本帖最后由 liuyuxi 于 2015-1-11 01:10 編輯
嘿嘿~~ 這次干脆點~~不但修正了BUG 還兼容winXP、win7、win2003...
==============================================================
<span style="line-height: 1.5;">#include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/</span>
#include<stdlib.h>/*加載標準函數(shù)庫頭文件*/
#include<string.h>
#include<windows.h>
#include<unistd.h>/*加載刪除函數(shù)頭文件*/
int i=3,a=0,d=0;/*聲明全局變量*/
int h=5;/*設(shè)定功能選擇*/
int y=4;
/*原型函數(shù)聲明*/
int xieru();
int yanzhen();
int zhu();
int tishi();
int yizhuce();
int jiamiweizhuce();
int jiamiyizhuce();
int jiemiweizhuce();
int jiemiyizhuce();
int u();
int autoo();
int dell();
int yc();
/************************作者聲明*****************************/
int xs()
{
printf("\n********************************************************************");
printf("\n 此程序為C語言編寫,編譯器為:DEV-C++ 4.9.9.2 多國語言版");
printf("\n\n 愿結(jié)交對C語言深感興趣并研究過C語言的朋友\n 若有任何建議或愿共同探討請聯(lián)系QQ:1007566569\n 加密方面,采用垃圾算法,純屬做練習(xí),各位不必當(dāng)真。\n");
printf("\n********************************************************************\n");
printf("\n作品名稱:加鎖程序(版本:2.1)支持【windows xp】【windows 7】【windows 2003】\n\n作品目的:增加對條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)、調(diào)用函數(shù)的方法、文件 處理指令,以及DOS命令\n\n作品功能:a:實現(xiàn)注冊驗證及對數(shù)字進行加密、解密功能\n b:了解加入開機啟動項的方法和利用文件處理知識..實現(xiàn)移動設(shè)備對電腦進行加 鎖功能~~~~還加了個隱私隱藏功能呢!\n\n作品改進:利用軟件爆破原理改進了程序輸入正確序列號重啟后仍需再次輸入序列號的缺陷 根據(jù)木馬自釋放原理,增加了U盤加鎖功能(O(∩_∩)O可以當(dāng)惡作劇玩哦!)\n\n作品缺陷:程序判斷用戶的選擇只能用數(shù)字否則出錯(嘗試用過char類型),只能加密\n 9位數(shù)字否則不能正確解密(或許與類型溢出有關(guān)),以上原因尚不明確!\n");
printf("\n********************************************************************\n");
return 0;
}
int aac()
{
printf("\n\n O(∩_∩)O哈哈~,請選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機(需注冊用戶)\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里(需注冊用戶))\n\n 【5】:注冊\n\n 【0】:退出\n\n ");
return 0;
}
int aac1()
{
system("cls");
printf("\n\n O(∩_∩)O哈哈~,不能亂選哦,請再次認真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機(需注冊用戶)\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里(需注冊用戶))\n\n 【5】:注冊\n\n 【0】:退出\n\n ");
return 0;
}
int aas()
{
printf("\n\n O(∩_∩)O哈哈~,請選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里)\n\n 【0】:退出\n\n ");
return 0;
}
int aas1()
{
system("cls");
printf("\n\n O(∩_∩)O哈哈~,不能亂選哦,請再次認真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對本程序加密的密文有效)\n\n 【3】: 用可移動磁盤(如U盤)加鎖計算機\n\n 【4】: 隱私隱藏功能(能把任何文件格式隱藏到任何文件里)\n\n 【0】:退出\n\n ");
return 0;
}
/************************作者聲明*****************************/
int main()/*聲明主函數(shù),每個C程序必須具備的*/
{
system("COLOR 0a");
system("title 歡迎使用由【笨笨♂豬】設(shè)計的程序~~");
printf("\n\t\t\t心情\n\n 若因她而要與全世界為敵,我會在最短時間內(nèi)強大起來保護她!\n\n\n");
system("pause");/*程序掛起*/
system("cls");
yanzhen();
}
/***************************************主調(diào)代碼*******************************************/
int zhu()/*自定義zhu函數(shù)*/
{
int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
xs();
system("pause");
system("cls");
aac();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
while(a>h)/*設(shè)定循環(huán)條件,達到輸入錯誤選項即可循環(huán)執(zhí)行確認選擇功能指令*/
{
aac1();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
}
switch(a)/*判斷語句,在c++稱為開關(guān)語句*/
{
case 1:/*若a等于1則運行下面代碼*/
printf("\n (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說明*/
printf("請輸入序列號:\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的序列號并賦值給變量a*/
if(a!=1007566569)/*若用戶所輸入的序列號不等于1007566569則執(zhí)行下面的指令,否則跳過下面的指令*/
jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/
else/*若等于1007566569則運行下面指令*/
{
xieru();
jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
}
break;/*跳出判斷語句避免“失敗經(jīng)過”*/
case 2:/*如果a等于2則運行下面代碼*/
printf("\n (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說明*/
printf("請輸入序列號:\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的序列號并賦值給變量a*/
if(a!=1007566569)/*若用戶所輸入的序列號不等于1007566569則執(zhí)行下面的指令,否則跳過下面的指令*/
jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/
else/*若等于1007566569則運行下面指令*/
{
xieru();
jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
}
break;/*跳出判斷語句避免“失敗經(jīng)過”*/
case 3:
case 4:
printf("\n\a\a對不起!您是未注冊用戶...\n\a");
system("pause");
zhu();
case 5:
for(;;)
{
printf("請輸入序列號:");
scanf("%d",&i);
if(i!=1007566569)
{
printf("\n暈~~請再到我空間看清源代碼~~\n\n\a");
continue;
}
else{
xieru();
printf("\n\n\aO(∩_∩)O~~注冊成功咯!哈~~~\n\n");
system("pause");
yanzhen();
}
}
case 0:/*若a等于0則運行下面代碼*/
exit(0);/*退出程序*/
break;/*跳出判斷語句避免“失敗經(jīng)過”*/
}
}
int tishi()/*自定義tishi函數(shù)*/
{
int q;/*聲明變量*/
printf("\n\a\a\a ╮(╯▽╰)╭對不起,您使用的次數(shù)已達到試用版的上限!\n\n"); /*警告用戶*/
printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個秘密哈,若想再次使用可以再次運行本程序,照樣\n還可以使用三次。不過,如果你這樣做的話,也只能說明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
printf("\n返回主菜單請輸入數(shù)字【3】,退出請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&q);/*讀取用戶所輸入數(shù)值并存入變量q*/
if(q==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
zhu();
else/*若不等于則運行下面代碼即退出,達到按任意數(shù)字鍵退出的目的*/
exit(0);/*退出程序*/
}
int yizhuce()/*自定義yizhuce函數(shù)*//*此函數(shù)已去除驗證序列號的功能*/
{
int a;/*聲明整數(shù)變量a、i,并把賦值3給i*/
xs();
system("pause");
system("cls");
aas();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
while(a>y)/*設(shè)定循環(huán)條件,達到輸入錯誤選項即可循環(huán)執(zhí)行確認選擇功能指令*/
{
aas1();
scanf("%d",&a);/*讀取用戶所輸入的選項并賦值給變量a*/
}
switch(a)/*判斷語句,在c++稱為開關(guān)語句*/
{
case 1:/*若a等于1則運行下面代碼*/
jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
break;/*跳出條件語句避免“失敗經(jīng)過”*/
case 2:/*若a等于2則運行下面代碼*/
jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
break;/*跳出條件語句避免“失敗經(jīng)過”*/
case 3:
u();
yanzhen();
case 4:
yc();
yanzhen();
case 0:/*若a等于0則運行下面代碼*/
exit(0);/*退出程序*/
break;/*跳出條件語句避免“失敗經(jīng)過”*/
}
}
/*************************主調(diào)用代碼**************************/
/*******************************功能實現(xiàn)代碼**********************************/
/******************************加密功能代碼************************************************/
int jiamiweizhuce()/*聲明自定義jiamiweizhuce函數(shù)(未注冊限制使用)同時聲明變量*/
{
/*以下為未注冊限制代碼↓↓*/
d=0;
while(i!=0)/*循環(huán)語句,設(shè)定條件為3次,由聲明變量時確定,達到三次后跳出循環(huán)停止運行算法*/
{
printf("\n請輸入一組需加密的數(shù)字【未注冊】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a+100000;/*進行加密算法↓↓*/
a=a+100009;
a=a+100052;
a=a+100878;
a=a+108546;
a=a+113545;
a=a+314123;/*進行加密算法↑↑*/
i--;/*運行算法一次則i減1,達到三次后滿足循環(huán)條件即運行3次算法,則i=3-3=0*/
printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)加密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break;/*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
zhu();
tishi();
}
int jiamiyizhuce()/*聲明自定義jiamiyizhuce函數(shù)(已注冊無限制使用)*/
{
/*以下為已注冊無限制代碼↓↓*/
for(;;)/*循環(huán)語句,不設(shè)定條件,可無限次運行算法指令*/
{
printf("\n請輸入一組需加密的數(shù)字【已注冊,可無限使用】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a+100000;/*進行加密算法↓↓*/
a=a+100009;
a=a+100052;
a=a+100878;
a=a+108546;
a=a+113545;
a=a+314123;/*進行加密算法↑↑*/
printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)加密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break; /*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
yizhuce();
}
/******************************加密功能代碼************************************************/
/******************************解密功能代碼************************************************/
int jiemiweizhuce()/*聲明解密未注冊(限制使用)函數(shù)*/
{
d=0;
/*以下為未注冊限制代碼↓↓*/
while(i!=0)/*循環(huán)語句,設(shè)定條件為3次,達到三次后跳出循環(huán)語句即i等于3*/
{
printf("\n請輸入一組需解密的數(shù)字【未注冊】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
a=a-100009;
a=a-100052;
a=a-100878;
a=a-108546;
a=a-113545;
a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
i--;/*運行算法一次則i加1,達到三次后滿足循環(huán)條件*/
printf("\n\a ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出真實密碼*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)解密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break;/*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
zhu();
tishi();
}
int jiemiyizhuce()/*聲明解密已注冊(解除限制)函數(shù)*/
{
/*以下為已注冊無限制代碼↓↓*/
for(;;)/*循環(huán)語句,不設(shè)定條件*/
{
printf("\n請輸入一組需解密的數(shù)字【已注冊,可無限使用】\n\n ");/*顯示說明*/
scanf("%d",&a);/*讀取用戶所輸入的數(shù)值并賦值給變量a*/
a=a-100000;/*逆行執(zhí)行加密算法↓↓*/
a=a-100009;
a=a-100052;
a=a-100878;
a=a-108546;
a=a-113545;
a=a-314123;/*逆行執(zhí)行加密算法↑↑*/
printf("\n\n\a ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】\n\n",a);/*算法完成輸出真實密碼*/
printf("\n返回主菜單請輸入數(shù)字【3】,繼續(xù)解密請輸入任意數(shù)字\n\n ");/*提示*/
scanf("%d",&d);/*讀取用戶所輸入的數(shù)值并存入變量d*/
if(d==3)/*若變量d等于3則強制跳出循環(huán)*/
break; /*強制跳出循環(huán)*/
}
if(d==3)/*若變量d等于3則運行以下代碼,否則省略本段代碼*/
yizhuce();
}
/******************************解密功能代碼************************************************/
/******************************U盤加鎖代碼************************************************/
int u()
{
system("cls");
FILE *p;
char pan[2]={0},password[50]={0},pd[]={"if not exist "},fu[]={":\\"},exi[]={" shutdown.exe -s -t "},ok[50],k[100],j[60];
printf("\n\n\t【1】為計算機加鎖\n\n\t【2】清除加鎖功能\n\n\t【3】返回\n\n\t");
scanf("%d",&i);
if(i==1)
{
system("cls");
printf("\n\n\t原理:每次開機都會檢測所指定的磁盤里的文件名(所以要設(shè)定開機啟動項),如果\n\t有則為合法用戶,可正常使用計算機。沒有則視為\"小偷\"開機后由您指定的時間(秒\t)關(guān)機~");
printf("所指定的文件名可以自定,程序會在該可移動磁盤中創(chuàng)建一個由你指定的文 件名的文件\n");
printf("\n\t注意,此程序檢測文件名,并不檢測里面的內(nèi)容..如果您輸入的為te12.txt 那么 只要您指定的磁盤根目錄有文件是此文件名即可當(dāng)成為開機密鑰\n\t(這意味著磁盤里的每一個文件都可當(dāng)成開機密鑰,增強隱蔽性),所以你可以在tr12 .txt里面加上一些內(nèi)容加以掩飾\n\n");
printf("\n\t請確定是否已插入可移動磁盤~~~~\n");
system("pause");
text:
printf("\n\n請輸入可移動磁盤盤符(輸入字母即可,如輸入g):");
scanf("%s",pan);
printf("\n\n請設(shè)定程序需檢測認證可移動磁盤根目錄上的文件名(也可以自定文件名):");
scanf("%s",password);
/****************檢測是否有該文件存在*******************/
strcpy(ok,pan);
strcat(ok,fu);
strcat(ok,password);
if((p=fopen(ok,"r"))==NULL)
{
printf("\n\n╮(╯_╰)╭檢測可移動磁盤無您指定的文件名,程序?qū)⒆詣觿?chuàng)建此文件\n");
p=fopen(ok,"w");
fclose(p);
if((p=fopen(ok,"r"))==NULL)
{
printf("\n\n╮(╯_╰)╭無法寫入..請確定可移動磁盤是否被設(shè)為寫保護或接口接觸不良..\n\n");
printf("\n\n重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
goto text;
else if(i==0)
return 0;
else
exit(0);
}
else
printf("\n\n\\(^o^)/~文件創(chuàng)建成功...");
fclose(p);
}
/*檢測是否有該文件存在*/
printf("\n\n請設(shè)定無此密碼文件時登陸系統(tǒng)后關(guān)機時間(秒)(建議輸入0,即開機后立即關(guān)機)\n【windows server 2003 支持最多600秒】:");
scanf("%s",j);
strcpy(k,pd);
strcat(k,pan);
strcat(k,fu);
strcat(k,password);
strcat(k,exi);
strcat(k,j);
printf("\n所使用的操作系統(tǒng)\n\n【1】windows xp\\widows 2003\n\n【2】widows 7\n\n");
scanf("%d",&i);
if(i==1)
{
if((p=fopen("C:\\WINDOWS\\love.bat","w"))==NULL)
{
printf("\n\n\a對不起,可能因為系統(tǒng)盤被寫保護或者操作系統(tǒng)不符,無法寫入配置文件....\n");
}
else
{
fprintf(p,k);
fclose(p);
system("attrib +s +r +h +a %systemroot%\\love.bat");
printf("\n\n即將設(shè)為開機啟動項..安全防護軟件可能會提示請按同意..\n");
system("pause");
autoo();
printf("\n\n已設(shè)置完成..重啟后立即生效~\n");
}
system("pause");
system("cls");
return 0;
}
if(i==2)
{
if((p=fopen("C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\love.bat","w"))==NULL)
{
printf("\n\n\a對不起,可能因為系統(tǒng)盤被寫保護或者操作系統(tǒng)不符,無法寫入配置文件....\n");
}
else
{
fprintf(p,k);
fclose(p);
printf("\n\n即將設(shè)為開機啟動項..安全防護軟件可能會提示請按同意..\n");
printf("\n\n已設(shè)置完成..重啟后立即生效~\n");
}
system("pause");
system("cls");
return 0;
}
}
else if(i==2)
dell();
else if(i==3)
yanzhen();
else
exit(0);
}
/******************************U盤加鎖代碼************************************************/
/***************************隱私隱藏功能***********************/
int yc()
{
system("cls");
printf("\n\n 由于我對DOS命令不太熟悉..所以操作會有點繁.請按提示操作吧~(*^__^*) 嘻嘻……\n");
system("pause");
a:
printf("\n【1】先把要隱藏的文件壓縮為RAR格式(最好就加個密碼)并改名為“隱藏掉”\n");
system("pause");
printf("\n【2】然后把掩飾要隱藏文件的文件改名為“掩飾它”(建議圖片格式。‐n");
system("pause");
printf("\n【3】再把這兩個放到D盤根目錄。即直接丟進D盤,不要放在D盤的任何文件夾里!\n");
system("pause");
printf("\n【4】你確定做好以上的步驟了嗎?返回輸入1,繼續(xù)輸入0\n");
scanf("%d",&i);
if(i==1)
goto a;
else
{
system("copy /b d:掩飾它.????+d:要隱藏的.rar d:成功隱藏.????");
printf("\n\n若出現(xiàn)“已復(fù)制 1個文件”則成功隱藏了該文件,同時會在D盤下生成一個名叫\(zhòng)n“成功隱藏”的文件,然后再它命名為你喜歡的名字;若出現(xiàn)“已復(fù)制 0個文件”\n則該文件沒被隱藏,原因可能是你沒按照上面所指示的步驟去做~\n\n\n輸入【1】返回\n輸入【2】返回主菜單~~\n輸入【0】退出\n");
scanf("%d",&i);
if(i==1)
goto a;
else if(i==2)
yanzhen();
else
exit(0);
}
}
/***************************隱私隱藏功能***********************/
/*******************************功能實現(xiàn)代碼**********************************/
/***************************注冊信息保存代碼************************/
int xieru()
{
FILE *fptr;
char name[20]={"\\(^o^)/~,成功咯~"};
if((fptr=fopen("C:\\WINDOWS\\system32\\愛夢想.love","w"))==NULL)
{
printf("\n\t暈啊~注冊信息保存失敗..是不是裝了什么磁盤保護軟件呢?或者中病毒?\n");
system("pause");
}
else
{
fprintf(fptr,name);
fclose(fptr);
system("attrib +s +r +h +a C:\\WINDOWS\\system32\\愛夢想.love");
}
return 0;
}
/***************************注冊信息保存代碼************************/
/***************************注冊信息讀取代碼************************/
int yanzhen()
{
FILE *fptr;
int i;
char a[]={"\\(^o^)/~,成功咯~"},d[20];
if((fptr=fopen("C:\\WINDOWS\\system32\\愛夢想.love","r"))==NULL)
zhu();
else
{
for(i=0;!feof(fptr);i++)
{
d[i]=fgetc(fptr);
}
fclose(fptr);
if(a[6]==d[6])
yizhuce();
else
zhu();
}
}
/***************************注冊信息讀取代碼************************/
/***************************設(shè)置開機啟動項代碼***********************/
/*設(shè)置開機啟動*/
int autoo()
{
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult;
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
ret=RegSetValueEx(hkResult,"love.bat"/* 注冊表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
if(ret==0){
printf("\n\n成功加入啟動項\n");
RegCloseKey(hkResult);
}
else {
printf("\n\n\a對不起,可能因為安全防護軟件阻攔,無法設(shè)為開機自啟動....\n");
system("attrib -s -r -h -a %systemroot%\\love.bat");
system("del %systemroot%\\love.bat");
printf("\n\n\t重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
return 0;
else
exit(0);
}
}
/*清除開機啟動*/
int dell()
{
FILE *fptr;
printf("\n所使用的操作系統(tǒng)\n\n【1】windows xp\widows 2003n\n【2】widows 7\n\n");
scanf("%d",&i);
if(i==1)
{
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult;
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
ret=RegSetValueEx(hkResult,"love.bat"/* 注冊表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
if(ret==0){
RegCloseKey(hkResult);
if((fptr=fopen("C:\\WINDOWS\\love.bat","r"))==NULL)
{
printf("\n\n\t\a╮(╯_╰)╭未發(fā)現(xiàn)配置文件呢!~~應(yīng)該已經(jīng)清除了吧..( ⊙o⊙ )?\n");
}
else
{
fclose(fptr);
system("attrib -s -r -h -a %systemroot%\\love.bat");
system("del %systemroot%\\love.bat");
printf("\n\n\t成功清除啟動項\n");
printf("\n\n\t成功清除開機加鎖功能~~~");
}
printf("\n\n\t重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
yizhuce();
else
exit(0);
}
else {
printf("\n\n\a對不起,可能因為安全防護軟件阻攔,無法清除開機自啟動....");
printf("\n\n重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
zhu();
else
exit(0);
}
}
else if(i==2)
{
if((fptr=fopen("C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\love.bat","r"))==NULL)
{
printf("\n\n\t\a╮(╯_╰)╭未發(fā)現(xiàn)配置文件呢!~~應(yīng)該已經(jīng)清除了吧..( ⊙o⊙ )?\n");
}
else
{
fclose(fptr);
unlink("C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\love.bat");
printf("\n\n\t成功清除啟動項\n");
printf("\n\n\t成功清除開機加鎖功能~~~");
}
printf("\n\n\t重新配置請輸入1,返回輸入0,任意輸入則退出");
scanf("%d",&i);
if(i==1)
u();
else if(i==0)
yizhuce();
else
exit(0);
}
int dell();
}
===================================================================
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1