文/小軍
JScript小知識(shí):JScript是一種解釋型的、基于對(duì)象的腳本語言。盡管與C++這樣成熟的面向?qū)ο蟮恼Z言相比,JScript的功能要弱一些,但對(duì)于它的預(yù)期用途而言,JScript的功能已經(jīng)足夠大了。JScript程序是語句的集合,一條Jscript語句相當(dāng)于英語中的一個(gè)完整句。Jscript語句將表達(dá)式組合起來,完成一個(gè)任務(wù)。一條語句由一個(gè)或多個(gè)表達(dá)式、關(guān)鍵字或者運(yùn)算符(符號(hào))組成。典型地,一條語句寫一行,盡管一條語句可以超過兩行或更多行。兩條或更多條語句也可以寫在同一行上,語句之間用分號(hào)“;”隔開。通常,每一新行開始一條新語句,分號(hào)(;)是JScript語句的終止字符。
一、用JS編輯注冊(cè)表
事實(shí)上,JS的主體和VBS文件差不多,就是結(jié)構(gòu)有一點(diǎn)不同而已!所以我們就不多說了。下面是個(gè)用JS編輯注冊(cè)表的簡單例子:
var WSHShell=WScript.CreateObject("WScript.Shell");
WSHShell.Popup ("這是一個(gè)用JS編輯注冊(cè)表的例子By yjj");
WSHShell.RegWrite("HKLM/Example_JS", "String Key_JS");
WSHShell.RegWrite("HKLM/Example_JS", "Reginfo By yjj");
WSHShell.RegWrite("HKLM/Example_JS/Value","String Key For JS");
WSHShell.RegWrite("HKLM/Example_JS/Binary", 1,"REG_BINARY" );
WSHShell.RegWrite("HKLM/Example_JS/DWord", 1,"REG_DWORD" );
WSHShell.RegWrite("HKLM/Example_JS/Next","NewData");
WSHShell.Run("Regedit");
上面這些代碼中第一句是定義對(duì)象,第二句用來顯示一條信息,后面幾行寫注冊(cè)表,最后一行運(yùn)行注冊(cè)表編輯器。大家可以看出用JS對(duì)鍵值進(jìn)行操作時(shí)要用兩斜杠“/”,并且要用“;”表示結(jié)束。一般只要能注意這兩點(diǎn),就沒有問題了。
再來看一個(gè)用JS編輯注冊(cè)表的例子。大家知道,瀏覽某些惡意網(wǎng)頁會(huì)把我們的注冊(cè)表給禁用了,由于無法導(dǎo)入注冊(cè)表文件,造成我們沒有辦法使用注冊(cè)表編輯器。把下面的代碼存為以js為后綴名的任意文件,然后雙擊就可以將其導(dǎo)入注冊(cè)表中,從而給注冊(cè)表解鎖:
VAR WSHShell=WSCRIPT.CREATOBJEt("WSCRIPT.SHELL");
WSHShell.Popup("這是一個(gè)用JS編輯注冊(cè)表的例子By YJJ");
//下面的例子要在注冊(cè)表中建立一個(gè)Dword值,名為DisableRegistryTools,值為0,注意要說明值的類型!
WSHShell.RegWrite("HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/system
/DisableRegistryTools", 0,"reg_dword");
試試看,是不是很神奇啊?以上說的都是添加鍵值,如果要?jiǎng)h除某些鍵值該怎么辦呢?很簡單,將“WSHShell.RegWrite”改成“WSHShell.RegDelete”就可以了。
注意:JScript不是其他語言的精簡版,也不是任何事物的簡化。不過,它有其局限性。例如,您不能使用該語言來編寫?yīng)毩⑦\(yùn)行的應(yīng)用程序,并且沒有對(duì)讀寫文件的內(nèi)置支持。此外,JScript腳本只能在某個(gè)解釋器或“宿主”上運(yùn)行,如asp、Internet瀏覽器或者Windows腳本宿主。
二、用INF文件編輯注冊(cè)表
INF小知識(shí):INF是用于安裝驅(qū)動(dòng)程序的文件,它是文本格式的,記錄著驅(qū)動(dòng)程序的所有相關(guān)資料。隨便打開一個(gè)INF文件可以看到許多項(xiàng),每一項(xiàng)都有特定的含義,比如從“Version”一項(xiàng)就可以看出支持的Windows版本是什么:Win9X系列的代號(hào)就是CHICAGO,Win2000/XP的代號(hào)就是Windows NT。
讓我們來舉個(gè)例子。首先打開記事本,然后在里面輸入下面內(nèi)容,然后保存為addreg.inf。
[Version]
Signature="$CHICAGO$"
[DefaultInstall]
Addreg=Add
[Add]
HKLM,"SOFTWARE/★★小軍★★",,%REG_SZ%,★★小軍向你表示祝賀★★!
HKLM,"SOFTWARE/★★小軍★★",SZ字符串,%REG_SZ%,Congratulations!
HKLM,"SOFTWARE/★★小軍★★",Dword雙字節(jié),%REG_Dword%,1
HKLM,"SOFTWARE/★★小軍★★",Binary二進(jìn)值,%REG_BINARY%,00,00,00,00,10,11,00,00
HKLM,"SOFTWARE/★★小軍★★/測試";添加“測試”這個(gè)下級(jí)子鍵
[Strings]
REG_SZ=0x00000000
REG_BINARY=0x00000001
REG_DWORD=0x00010001
鼠標(biāo)右鍵點(diǎn)擊這個(gè)INF文件,選擇快捷菜單中的“安裝”命令,如果你輸入的格式?jīng)]有錯(cuò)誤的話,應(yīng)該在HKEY_LOCAL_MACHINE/Software下面看到一個(gè)新的主鍵:★★小軍★★,選中這個(gè)主鍵,應(yīng)該可以在右邊看到默認(rèn)值為“★★小軍向你表示祝賀★★!”,還有一個(gè)叫做“SZ字符串”的字符串值為“Congratulations!”等等。
![]() |
展開這個(gè)主鍵,還可以看到另外一個(gè)主鍵,名為“測試”,是不是感到很奇怪啊?其實(shí)這一招并不神秘,就是那個(gè)INF文件搗的“鬼”!
由上可知,INF文件是由各個(gè)小節(jié)(Section) 組成,各小節(jié)之間必須空一行。小節(jié)的名字從中括號(hào)“[”起至“]”結(jié)束,小節(jié)的名字是它的入口點(diǎn),在此文件中必須是唯一的。小節(jié)名之后是小節(jié)內(nèi)容,形式上是“鍵名稱=鍵值”。在文件中可以添加注釋,由分號(hào)“;”完成,分號(hào)后的內(nèi)容不被解釋執(zhí)行。書寫INF文件的格式如上所示,其各項(xiàng)含義如下:
[Version]:指明能夠使用的Windows版本
Signature:系統(tǒng)從這里來看是不是適合當(dāng)前版本,如果適合的話就執(zhí)行,否則不執(zhí)行。
[DefaultInstall]:指出該INF文件包含的其他小節(jié)。可將INF文件看成是以[DefaultInstall]為主干的樹,在這兒我們可以加入AddReg和DelReg鍵,它們指定希望添加,編輯,修改或是刪除注冊(cè)表項(xiàng)的小節(jié)名稱。
Addreg=add:表示在注冊(cè)表中添加內(nèi)容,此項(xiàng)就指定了要添加的⒉岜硇∠畹母鞒疲芯嚀逄砑雍蛻境畔⒌男〗誥褂美嗨聘袷餃縵攏?/font>
HKEY(根鍵縮寫),Subkey(子鍵),Valuename(鍵值名),Type(鍵值類型),Value(鍵值)
其中根鍵縮寫方式很明了,前兩個(gè)字符必須為HK,如HKEY,HKLM,HKR等。子鍵為不包括根鍵部分的子鍵分支,鍵值為空就表示是默認(rèn)值。鍵值類型中,如果為0則指定為字符串型,如果為1則是二進(jìn)制型。鍵值中的字符串形式的必須以雙引號(hào)括起來,而二進(jìn)制數(shù)據(jù)則使用十六進(jìn)制格式表示出來,各字節(jié)之間以逗號(hào)“,”分割。
Delreg=del:表示在注冊(cè)表中要?jiǎng)h除的內(nèi)容
[Strings]:是擴(kuò)充用的,這樣就可以避免記憶麻煩的數(shù)字了。比如字符串本來應(yīng)該是0,現(xiàn)在用REG_SZ表示。
基本原理就這些,現(xiàn)在我們來刪除剛剛我建立的東西。在記事本里面粘貼下面內(nèi)容:
[Version]
Signature="$CHICAGO$"
[DefaultInstall]
Delreg=Del
[Del]
HKLM,"SOFTWARE/★★小軍★★/測試"
HKLM,"SOFTWARE/★★小軍★★"
然后保存為擴(kuò)展名為.INF的任意文件,用鼠標(biāo)右鍵點(diǎn)擊這個(gè)INF文件,選擇快捷菜單中的“安裝”命令,然后再到注冊(cè)表編輯器里面看看,是不是剛剛建立的東西沒有了。怎么樣?很神奇吧?
也許有人會(huì)問,能不能只刪除一項(xiàng)呢?可以的。比如我刪除HKEY_LOCAL_MACHINE/★★小軍★★下的那個(gè)叫做“SZ字符串”的字符串值,那么只需要用記事本寫下面內(nèi)容:
[Version]
Signuture="$CHICAGO$"
[DefaultInstall]
Delreg=Del
[Del]
HKLM,"SOFTWARE/★★小軍★★",SZ字符串
保存完畢,按照同樣的方法運(yùn)行即可只刪除這個(gè)字符串值。
現(xiàn)在,我們?cè)倥e個(gè)用INF文件對(duì)注冊(cè)表進(jìn)行操作的例子,具體說來就是用INF文件對(duì)加了鎖的注冊(cè)表進(jìn)行解鎖。何為加了鎖的注冊(cè)表?大家知道,要禁止別人使用注冊(cè)表編輯器,可以使用下面這個(gè)辦法:在注冊(cè)表HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVerssion/policies/system下,新建DWORD值Disableregistrytools,并設(shè)其鍵值為1即可。這樣,當(dāng)有人運(yùn)行注冊(cè)表編輯器時(shí)就會(huì)出現(xiàn)“注冊(cè)編輯已被管理員所禁止”的對(duì)話框,限制了別人使用注冊(cè)表編輯器,在一定程度上保護(hù)了系統(tǒng)的安全。

但是當(dāng)自己要使用注冊(cè)表編輯器時(shí)該怎么辦呢?我們可以用記事本編制個(gè)INF文件進(jìn)行解鎖:
[Version]
Signature="$CHICAGO$"
[DefaultInstall]
Delreg=Del
[Del]
HKCU,"Software/Microsoft/Windows/CurrentVersion/Policies/System",
Disableregistrytools,1,00,00,00,00
將上面的內(nèi)容保存為后綴名為.inf的任意文件,然后用右鍵點(diǎn)擊它,在彈出菜單中選擇“安裝”即可給注冊(cè)表解鎖。
請(qǐng)大家特別注意:采用此方法修改注冊(cè)表危險(xiǎn)度很高,而且格式要求也很嚴(yán)(必須使用英文標(biāo)點(diǎn)符號(hào),而且。請(qǐng)按照本文中的格式書寫),望大家小心使用。好了,就先談這么多,由于水平有限,不當(dāng)之處請(qǐng)大家批評(píng)指正。
新聞熱點(diǎn)
疑難解答
圖片精選