|
本帖最后由 liuyuxi 于 2015-1-11 01:55 編輯
C語(yǔ)言作品(三次改進(jìn)版)加入U(xiǎn)盤(pán)鎖定計(jì)算機(jī)功能:
↖(^ω^)↗哈哈,一個(gè)月嘞,在惠州實(shí)踐了\n\t22天,╮(╯▽╰)╭~~當(dāng)普工簡(jiǎn)直是墮落,本來(lái)滿滿的自信和積極的上進(jìn)心,在那不過(guò)幾天,就差點(diǎn)全被侵蝕掉了..真恐怖!還好那些管理員蠻不錯(cuò),就是有些員工超猥瑣的!也有些員工很黃很暴力⊙﹏⊙b汗..更離譜的是居然調(diào)戲女學(xué)生..吖的,超想買(mǎi)塊豆腐砸死他們!! (#‵′)靠~..
笨笨豬,謝謝你!謝謝你在我最失落時(shí)給我動(dòng)力,給我信心!讓我沒(méi)有被他們所影響~~讓我重拾自信~~讓我的C再次突破!我們是最棒的↖(^ω^)↗!呵呵~本次靈感來(lái)自軟件爆破原理,利用此原理可以改進(jìn)重啟程序后需要再次輸入序列號(hào)的缺陷.....并增加了一個(gè)比較實(shí)用的功能,用U盤(pán)給自己的電腦加鎖...
原理:每次開(kāi)機(jī)都會(huì)檢測(cè)所指定的磁盤(pán)里的文件名(所以要設(shè)定開(kāi)機(jī)啟動(dòng)項(xiàng)),如果有則為合法用戶(hù),可正常使用計(jì)算機(jī)。沒(méi)有則視為非法用戶(hù),開(kāi)機(jī)后由你指定的時(shí)間(秒\t)關(guān)機(jī)~
所指定的文件名可以自定,程序會(huì)在該可移動(dòng)磁盤(pán)中創(chuàng)建一個(gè)由你指定的文件名的文件...如果U盤(pán)存在該文件則以該文件為開(kāi)機(jī)密鑰~~~
注意,此程序只檢測(cè)文件名,并不檢測(cè)里面的內(nèi)容..如果您輸入的為te12.txt 那么只要您指定的磁盤(pán)根目錄有文件是此文件名即可當(dāng)成為開(kāi)機(jī)密鑰,(如果沒(méi)有則程序自動(dòng)創(chuàng)建該文件)這意味著磁盤(pán)里的每一個(gè)文件(任何格式都可以)都可當(dāng)成開(kāi)機(jī)密鑰,增強(qiáng)隱蔽性,所以你可以在tr12.txt里面加上一些內(nèi)容加以掩飾~~~
如果萬(wàn)一U盤(pán)被損壞,可以在其他U盤(pán)新建一個(gè)由你在程序設(shè)定的文件名命名的文件即可~~~
程序下載地址:加鎖文件 點(diǎn)擊即可下載
圖片:
源代碼:
- #include<stdio.h>/*加載包含基本輸入輸出函數(shù)頭文件*/
- #include<stdlib.h>/*加載標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件*/
- #include<string.h>
- #include<windows.h>
- int i=3,a=0,d=0;/*聲明全局變量*/
- /*原型函數(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 main()/*聲明主函數(shù),每個(gè)C程序必須具備的*/
- {
- system("COLOR 0a");
- system("title 歡迎使用由【笨笨♂豬】設(shè)計(jì)的程序~~");
- printf("\n\t 靈感\(zhòng)n\n\t ↖(^ω^)↗哈哈,一個(gè)月嘞,在惠州實(shí)踐了\n\t22天,╮(╯▽╰)╭~~當(dāng)普工簡(jiǎn)直是墮落,本\n\t來(lái)滿滿的自信和積極的上進(jìn)心,在那不過(guò)幾天,\n\t就差點(diǎn)全被侵蝕掉了..真恐怖!還好那些管理\n\t員蠻不錯(cuò),就是有些員工超猥瑣的!也有些員\n\t工很黃很暴力⊙﹏⊙b汗..更離譜的是居然調(diào)\n\t戲女學(xué)生..吖的,超想買(mǎi)塊豆腐砸死他們!! \n\t(#‵′)靠~..\n\t 笨笨豬,謝謝你!謝謝你在我最失落時(shí)給我\n\t動(dòng)力,給我信心!讓我的C再次突破!我們是最\n\t棒的↖(^ω^)↗!呵呵~本次靈感來(lái)自軟件爆破\n\t原理,利用此原理可以改進(jìn)重啟程序后需要再\n\t次輸入序列號(hào)的缺陷。還有個(gè)缺陷是只能加解\n\t密9位數(shù)字,我覺(jué)得應(yīng)該是產(chǎn)生溢出了吧,郁悶~~\n\t這次加上了比較實(shí)用的功能=》用U盤(pán)給電腦加鎖..\n\n\n\n");
- system("pause");/*程序掛起*/
- system("cls");
- yanzhen();
- }
- /***************************************主調(diào)代碼*******************************************/
- int zhu()/*自定義zhu函數(shù)*/
- {
- int a,i=3;/*聲明整數(shù)變量a、i,并把賦值3給i*/
- printf("\n********************************************************************");
- printf("\n 此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
- printf("\n\n 愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n 若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n 加密方面,采用垃圾算法,純屬做練習(xí),各位不必當(dāng)真。\n");
-
- printf("\n********************************************************************\n");
-
- printf("\n作品名稱(chēng):加鎖程序(原:數(shù)字密碼加密程序三次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)、調(diào)用函數(shù)的方法、文件 處理指令,以及DOS命令\n\n作品功能:a:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n b:了解加入開(kāi)機(jī)啟動(dòng)項(xiàng)的方法和利用文件處理知識(shí)..實(shí)現(xiàn)移動(dòng)設(shè)備對(duì)電腦進(jìn)行加 鎖功能\n\n作品改進(jìn):利用軟件爆破原理改進(jìn)了程序輸入正確序列號(hào)重啟后仍需再次輸入序列號(hào)的缺陷\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n 9位數(shù)字否則不能正確解密 以上原因尚不明確!\n");
- printf("\n********************************************************************\n");
- system("pause");
- system("cls");
-
- printf("\n\n O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】:用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)(需注冊(cè)用戶(hù))\n\n 【4】:注冊(cè)\n\n 【0】:退出\n\n ");
- scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
- while(a>4)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
- {
- printf("\n\n O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】:用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)(需注冊(cè)用戶(hù))\n\n 【4】:注冊(cè)\n\n 【0】:退出\n\n ");
- scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
- }
- switch(a)/*判斷語(yǔ)句,在c++稱(chēng)為開(kāi)關(guān)語(yǔ)句*/
- {
- case 1:/*若a等于1則運(yùn)行下面代碼*/
- printf("\n (*^__^*) 歡迎使用本加密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
- printf("請(qǐng)輸入序列號(hào):\n\n ");/*顯示說(shuō)明*/
- scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
- if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
-
- jiamiweizhuce();/*調(diào)用jiamiweizhuce函數(shù)*/
- else/*若等于0000000000則運(yùn)行下面指令*/
- {
- xieru();
- jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
- }
- break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
- case 2:/*如果a等于2則運(yùn)行下面代碼*/
- printf("\n (*^__^*) 歡迎使用本解密程序【注:試用版只能使用三次】\n");/*顯示說(shuō)明*/
- printf("請(qǐng)輸入序列號(hào):\n\n ");/*顯示說(shuō)明*/
- scanf("%d",&a);/*讀取用戶(hù)所輸入的序列號(hào)并賦值給變量a*/
- if(a!=0000000000)/*若用戶(hù)所輸入的序列號(hào)不等于0000000000則執(zhí)行下面的指令,否則跳過(guò)下面的指令*/
- jiemiweizhuce();/*調(diào)用jiemiweizhuce代碼*/
- else/*若等于0000000000則運(yùn)行下面指令*/
- {
- xieru();
- jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
- }
- break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
- case 3:
- printf("\n對(duì)不起!您是未注冊(cè)用戶(hù)...\n");
- system("pause");
- zhu();
- case 4:
- for(;;)
- {
- printf("請(qǐng)輸入序列號(hào):");
- scanf("%d",&i);
- if(i!=0000000000)
- {
- printf("\n暈~~請(qǐng)?jiān)俚轿铱臻g看清源代碼~~\n");
- continue;
- }
- else{
- xieru();
- printf("\a\aO(∩_∩)O~~注冊(cè)成功咯!哈~~~\n");
- system("pause");
- yanzhen();
- }
- }
-
- case 0:/*若a等于0則運(yùn)行下面代碼*/
- exit(0);/*退出程序*/
- break;/*跳出判斷語(yǔ)句避免“失敗經(jīng)過(guò)”*/
- }
- }
-
- int tishi()/*自定義tishi函數(shù)*/
- {
- int q;/*聲明變量*/
- printf("\n\a\a\a ╮(╯▽╰)╭對(duì)不起,您使用的次數(shù)已達(dá)到試用版的上限!\n\n"); /*警告用戶(hù)*/
- printf("\n\n\nO(∩_∩)O哈哈~,告訴你一個(gè)秘密哈,若想再次使用可以再次運(yùn)行本程序,照樣\n還可以使用三次。不過(guò),如果你這樣做的話,也只能說(shuō)明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
- printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,退出請(qǐng)輸入任意數(shù)字\n\n ");/*提示*/
- scanf("%d",&q);/*讀取用戶(hù)所輸入數(shù)值并存入變量q*/
- if(q==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
- zhu();
- else/*若不等于則運(yùn)行下面代碼即退出,達(dá)到按任意數(shù)字鍵退出的目的*/
- exit(0);/*退出程序*/
- }
- int yizhuce()/*自定義yizhuce函數(shù)*//*此函數(shù)已去除驗(yàn)證序列號(hào)的功能*/
- {
- int a;/*聲明整數(shù)變量a、i,并把賦值3給i*/
- printf("\n********************************************************************");
- printf("\n 此程序?yàn)镃語(yǔ)言編寫(xiě),編譯器為:DEV-C++ 4.9.9.2 多國(guó)語(yǔ)言版");
- printf("\n\n 愿結(jié)交對(duì)C語(yǔ)言深感興趣并研究過(guò)C語(yǔ)言的朋友\n 若有任何建議或愿共同探討請(qǐng)聯(lián)系QQ:0000000000\n 加密方面,采用垃圾算法,純屬做練習(xí),各位不必當(dāng)真。\n");
-
- printf("\n********************************************************************\n");
-
- printf("\n作品名稱(chēng):加鎖程序(原:數(shù)字密碼加密程序三次改進(jìn)版)\n\n作品目的:增加對(duì)條件指令、循環(huán)指令的了解并熟悉自定義函數(shù)、調(diào)用函數(shù)的方法、文件 處理指令,以及DOS命令\n\n作品功能:a:實(shí)現(xiàn)注冊(cè)驗(yàn)證及對(duì)數(shù)字進(jìn)行加密、解密功能\n b:了解加入開(kāi)機(jī)啟動(dòng)項(xiàng)的方法和利用文件處理知識(shí)..實(shí)現(xiàn)移動(dòng)設(shè)備對(duì)電腦進(jìn)行加 鎖功能\n\n作品改進(jìn):利用軟件爆破原理改進(jìn)了程序輸入正確序列號(hào)重啟后仍需再次輸入序列號(hào)的缺陷\n作品缺陷:程序判斷用戶(hù)的選擇只能用數(shù)字否則出錯(cuò)(嘗試用過(guò)char類(lèi)型),只能加密\n 9位數(shù)字否則不能正確解密(此BUG與算法無(wú)關(guān)),無(wú)論注冊(cè)碼是否正確重啟\n 程序后需再次輸入序列號(hào).以上原因尚不明確!\n");
- printf("\n********************************************************************\n");
- system("pause");
- system("cls");
-
- printf("\n\n O(∩_∩)O哈哈~,請(qǐng)選擇所需要的功能:\n\n 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)\n\n 【0】:退出\n\n ");
- scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
- while(a>3)/*設(shè)定循環(huán)條件,達(dá)到輸入錯(cuò)誤選項(xiàng)即可循環(huán)執(zhí)行確認(rèn)選擇功能指令*/
- {
- printf("\n\n O(∩_∩)O哈哈~,不能亂選哦,請(qǐng)?jiān)俅握J(rèn)真選擇所需要的功能:\n\n 【 【1】:加密(目前只支持9位任意數(shù)字)\n\n 【2】:解密(只對(duì)本程序加密的密文有效)\n\n 【3】用可移動(dòng)磁盤(pán)(如U盤(pán))加鎖計(jì)算機(jī)\n\n 【0】:退出\n\n ");
- scanf("%d",&a);/*讀取用戶(hù)所輸入的選項(xiàng)并賦值給變量a*/
- }
- switch(a)/*判斷語(yǔ)句,在c++稱(chēng)為開(kāi)關(guān)語(yǔ)句*/
- {
- case 1:/*若a等于1則運(yùn)行下面代碼*/
- jiamiyizhuce();/*調(diào)用jiamiyizhuce函數(shù)*/
- break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
- case 2:/*若a等于2則運(yùn)行下面代碼*/
- jiemiyizhuce();/*調(diào)用jiemiyizhuce函數(shù)*/
- break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
- case 3:
- {
- u();
- zhu();
- }
- case 0:/*若a等于0則運(yùn)行下面代碼*/
- exit(0);/*退出程序*/
- break;/*跳出條件語(yǔ)句避免“失敗經(jīng)過(guò)”*/
- }
- }
- /*************************主調(diào)用代碼**************************/
- /*******************************功能實(shí)現(xiàn)代碼**********************************/
- /******************************加密功能代碼************************************************/
- int jiamiweizhuce()/*聲明自定義jiamiweizhuce函數(shù)(未注冊(cè)限制使用)同時(shí)聲明變量*/
- {
- /*以下為未注冊(cè)限制代碼↓↓*/
- while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,由聲明變量時(shí)確定,達(dá)到三次后跳出循環(huán)停止運(yùn)行算法*/
- {
- printf("\n請(qǐng)輸入一組需加密的數(shù)字【未注冊(cè)】\n\n ");/*顯示說(shuō)明*/
- scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
- a=a+100000;/*進(jìn)行加密算法↓↓*/
- a=a+100009;
- a=a+100052;
- a=a+100878;
- a=a+108546;
- a=a+113545;
- a=a+314123;/*進(jìn)行加密算法↑↑*/
- i--;/*運(yùn)行算法一次則i減1,達(dá)到三次后滿足循環(huán)條件即運(yùn)行3次算法,則i=3-3=0*/
- printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);/*算法完成輸出密文并提醒使用次數(shù)*/
- printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n ");/*提示*/
- scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
- if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
- break;/*強(qiáng)制跳出循環(huán)*/
- }
- if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
- zhu();
- tishi();
- }
- int jiamiyizhuce()/*聲明自定義jiamiyizhuce函數(shù)(已注冊(cè)無(wú)限制使用)*/
- {
- /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
- for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件,可無(wú)限次運(yùn)行算法指令*/
- {
- printf("\n請(qǐng)輸入一組需加密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n ");/*顯示說(shuō)明*/
- scanf("%d",&a);/*讀取用戶(hù)所輸入的數(shù)值并賦值給變量a*/
- a=a+100000;/*進(jìn)行加密算法↓↓*/
- a=a+100009;
- a=a+100052;
- a=a+100878;
- a=a+108546;
- a=a+113545;
- a=a+314123;/*進(jìn)行加密算法↑↑*/
- printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文為:【%d】\n\n",a);/*算法完成,輸出密文*/
- printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)加密請(qǐng)輸入任意數(shù)字\n\n ");/*提示*/
- scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
- if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
- break; /*強(qiáng)制跳出循環(huán)*/
- }
- if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
- yizhuce();
- }
- /******************************加密功能代碼************************************************/
- /******************************解密功能代碼************************************************/
- int jiemiweizhuce()/*聲明解密未注冊(cè)(限制使用)函數(shù)*/
- {
- /*以下為未注冊(cè)限制代碼↓↓*/
- while(i!=0)/*循環(huán)語(yǔ)句,設(shè)定條件為3次,達(dá)到三次后跳出循環(huán)語(yǔ)句即i等于3*/
- {
- printf("\n請(qǐng)輸入一組需解密的數(shù)字【未注冊(cè)】\n\n ");/*顯示說(shuō)明*/
- scanf("%d",&a);/*讀取用戶(hù)所輸入的數(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--;/*運(yùn)行算法一次則i減一,達(dá)到三次后滿足循環(huán)條件*/
- printf("\n\a ~\(≧▽≦)/~恭喜,已完成解密!密碼為:【%d】(還有【%d】次使用權(quán))\n\n",a,i);
- printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)解密請(qǐng)輸入任意數(shù)字\n\n ");/*提示*/
- scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
- if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
- break;/*強(qiáng)制跳出循環(huán)*/
- }
- if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
- zhu();
- tishi();
- }
- int jiemiyizhuce()/*聲明解密已注冊(cè)(解除限制)函數(shù)*/
- {
- /*以下為已注冊(cè)無(wú)限制代碼↓↓*/
- for(;;)/*循環(huán)語(yǔ)句,不設(shè)定條件*/
- {
- printf("\n請(qǐng)輸入一組需解密的數(shù)字【已注冊(cè),可無(wú)限使用】\n\n ");/*顯示說(shuō)明*/
- scanf("%d",&a);/*讀取用戶(hù)所輸入的數(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);/*算法完成輸出真實(shí)密碼*/
- printf("\n返回主菜單請(qǐng)輸入數(shù)字【3】,繼續(xù)解密請(qǐng)輸入任意數(shù)字\n\n ");/*提示*/
- scanf("%d",&d);/*讀取用戶(hù)所輸入的數(shù)值并存入變量d*/
- if(d==3)/*若變量d等于3則強(qiáng)制跳出循環(huán)*/
- break; /*強(qiáng)制跳出循環(huán)*/
- }
- if(d==3)/*若變量d等于3則運(yùn)行以下代碼,否則省略本段代碼*/
- yizhuce();
- }
- /******************************解密功能代碼************************************************/
- /******************************U盤(pán)加鎖代碼************************************************/
- 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】為計(jì)算機(jī)加鎖\n\n\t【2】清除加鎖功能\n\n\t【3】返回\n\n\t");
- scanf("%d",&i);
- if(i==1)
- {
- system("cls");
- printf("\n\n\t原理:每次開(kāi)機(jī)都會(huì)檢測(cè)所指定的磁盤(pán)里的文件名(所以要設(shè)定開(kāi)機(jī)啟動(dòng)項(xiàng)),如果\n\t有則為合法用戶(hù),可正常使用計(jì)算機(jī)。沒(méi)有則視為\"小偷\"開(kāi)機(jī)后由您指定的時(shí)間(秒\t)關(guān)機(jī)~");
- printf("所指定的文件名可以自定,程序會(huì)在該可移動(dòng)磁盤(pán)中創(chuàng)建一個(gè)由你指定的文 件名的文件\n");
- printf("\n\t注意,此程序檢測(cè)文件名,并不檢測(cè)里面的內(nèi)容..如果您輸入的為te12.txt 那么 只要您指定的磁盤(pán)根目錄有文件是此文件名即可當(dāng)成為開(kāi)機(jī)密鑰\n\t(這意味著磁盤(pán)里的每一個(gè)文件都可當(dāng)成開(kāi)機(jī)密鑰,增強(qiáng)隱蔽性),所以你可以在tr12 .txt里面加上一些內(nèi)容加以掩飾\n\n");
- printf("\n\t請(qǐng)確定是否已插入可移動(dòng)磁盤(pán)~~~~\n");
- system("pause");
- text:
- printf("\n\n請(qǐng)輸入可移動(dòng)磁盤(pán)盤(pán)符(輸入字母即可,如輸入g):");
- scanf("%s",pan);
- printf("\n\n請(qǐng)?jiān)O(shè)定程序需檢測(cè)認(rèn)證可移動(dòng)磁盤(pán)根目錄上的文件名(也可以自定文件名):");
- scanf("%s",password);
- /****************檢測(cè)是否有該文件存在*******************/
- strcpy(ok,pan);
- strcat(ok,fu);
- strcat(ok,password);
- if((p=fopen(ok,"r"))==NULL)
- {
- printf("\n\n╮(╯_╰)╭檢測(cè)可移動(dòng)磁盤(pán)無(wú)您指定的文件名,程序?qū)⒆詣?dòng)創(chuàng)建此文件\n");
- p=fopen(ok,"w");
- if((p=fopen(ok,"r"))==NULL)
- {
- printf("\n\n╮(╯_╰)╭無(wú)法寫(xiě)入..請(qǐng)確定可移動(dòng)磁盤(pán)是否被設(shè)為寫(xiě)保護(hù)或接口接觸不良..\n\n");
- printf("\n\n重新配置請(qǐng)輸入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)建成功...");
- }
- /****************檢測(cè)是否有該文件存在*******************/
- printf("\n\n請(qǐng)?jiān)O(shè)定無(wú)此密碼文件時(shí)登陸系統(tǒng)后關(guān)機(jī)時(shí)間(秒)(建議輸入0,即開(kāi)機(jī)后立即關(guān)機(jī)):");
- 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對(duì)不起,可能因?yàn)橄到y(tǒng)盤(pán)被寫(xiě)保護(hù),無(wú)法寫(xiě)入配置文件....\n");
- system("pause");
- }
- else
- {
- fprintf(p,k);
- fclose(p);
- printf("\n\n即將設(shè)為開(kāi)機(jī)啟動(dòng)項(xiàng)..安全防護(hù)軟件可能會(huì)提示請(qǐng)按同意..\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盤(pán)加鎖代碼************************************************/
-
- /*******************************功能實(shí)現(xiàn)代碼**********************************/
- /***************************注冊(cè)信息保存代碼************************/
- int xieru()
- {
- FILE *fptr;
- char name[20]={"\\(^o^)/~,成功咯~"};
- if((fptr=fopen("C:\\WINDOWS\\system32\\愛(ài)夢(mèng)想.love","w"))==NULL)
- {
- printf("\n\t暈啊~注冊(cè)信息保存失敗..是不是裝了什么磁盤(pán)保護(hù)軟件呢?或者中病毒?\n");
- system("pause");
- }
- else
- {
- fprintf(fptr,name);
- fclose(fptr);
- }
- return 0;
- }
- /***************************注冊(cè)信息保存代碼************************/
- /***************************注冊(cè)信息讀取代碼************************/
- int yanzhen()
- {
- FILE *fptr;
- int i;
- char a[]={"\\(^o^)/~,成功咯~"},d[20];
- if((fptr=fopen("C:\\WINDOWS\\system32\\愛(ài)夢(mèng)想.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();
- }
- }
- /***************************注冊(cè)信息讀取代碼************************/
- /***************************設(shè)置開(kāi)機(jī)啟動(dòng)項(xiàng)代碼***********************/
- /*設(shè)置開(kāi)機(jī)啟動(dòng)*/
- int autoo()
- {
- char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
- HKEY hkResult;
- int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
- ret=RegSetValueEx(hkResult,"love.bat"/* 注冊(cè)表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
- if(ret==0){
- printf("\n\n成功加入啟動(dòng)項(xiàng)\n");
- RegCloseKey(hkResult);
- }
- else {
- printf("\n\n\a對(duì)不起,可能因?yàn)榘踩雷o(hù)軟件阻攔,無(wú)法設(shè)為開(kāi)機(jī)自啟動(dòng)....\n");
- system("del %systemroot%\\love.bat");
- printf("\n\n\t重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
- scanf("%d",&i);
- if(i==1)
- u();
- else if(i==0)
- return 0;
- else
- exit(0);
- }
- }
- /*清除開(kāi)機(jī)啟動(dòng)*/
- int dell()
- {
- char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
- HKEY hkResult;
- int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
- ret=RegSetValueEx(hkResult,"love.bat"/* 注冊(cè)表鍵名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
- if(ret==0){
-
- printf("\n\n\t成功清除啟動(dòng)項(xiàng)\n");
- RegCloseKey(hkResult);
- system("del %systemroot%\\love.bat");
- printf("\n\n\t成功刪除配置文件");
- printf("\n\n\t成功清除開(kāi)機(jī)加鎖功能~~~");
- printf("\n\n\t重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
- scanf("%d",&i);
- if(i==1)
- u();
- else if(i==0)
- zhu();
- else
- exit(0);
- }
- else {
- printf("\n\n\a對(duì)不起,可能因?yàn)榘踩雷o(hù)軟件阻攔,無(wú)法清除開(kāi)機(jī)自啟動(dòng)....");
- printf("\n\n重新配置請(qǐng)輸入1,返回輸入0,任意輸入則退出");
- scanf("%d",&i);
- if(i==1)
- u();
- else if(i==0)
- zhu();
- else
- exit(0);
- }
- }
- ======================================================================
復(fù)制代碼
|
|