JScript小知識JScript是一種解釋型的基於對象的腳本語言盡管與C++這樣成熟的面向對象的語言相比JScript的功能要弱一些但對於它的預期用途而言JScript的功能已經足夠大了JScript程序是語句的集合一條Jscript語句相當於英語中的一個完整句Jscript語句將表達式組合起來完成一個任務一條語句由一個或多個表達式關鍵字或者運算符(符號)組成典型地一條語句寫一行盡管一條語句可以超過兩行或更多行兩條或更多條語句也可以寫在同一行上語句之間用分號;隔開通常每一新行開始一條新語句分號(;)是JScript語句的終止字符
一用JS編輯注冊表
事實上JS的主體和VBS文件差不多就是結構有一點不同而已!所以我們就不多說了下面是個用JS編輯注冊表的簡單例子
var WSHShell=WScriptCreateObject(WScriptShell);
WSHShellPopup (這是一個用JS編輯注冊表的例子By yjj);
WSHShellRegWrite(HKLM\Example_JS String Key_JS);
WSHShellRegWrite(HKLM\Example_JS Reginfo By yjj);
WSHShellRegWrite(HKLM\Example_JS\ValueString Key For JS);
WSHShellRegWrite(HKLM\Example_JS\Binary REG_BINARY );
WSHShellRegWrite(HKLM\Example_JS\Dword REG_DWORD );
WSHShellRegWrite(HKLM\Example_JS\NextNewData);
WSHShellRun(Regedit);
上面這些代碼中第一句是定義對象第二句用來顯示一條信息後面幾行寫注冊表最後一行運行注冊表編輯器大家可以看出用JS對鍵值進行操作時要用兩斜槓\並且要用;表示結束一般只要能注意這兩點就沒有問題了
再來看一個用JS編輯注冊表的例子大家知道浏覽某些惡意網頁會把我們的注冊表給禁用了由於無法導入注冊表文件造成我們沒有辦法使用注冊表編輯器把下面的代碼存為以js為後綴名的任意文件然後雙擊就可以將其導入注冊表中從而給注冊表解鎖
VAR WSHShell=WSCRIPTCREATOBJEt(WSCRIPTSHELL);
WSHShellPopup(這是一個用JS編輯注冊表的例子By YJJ);
//下面的例子要在注冊表中建立一個Dword值名為DisableRegistryTools值為注意要說明值的類型!
WSHShellRegWrite(HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\system
\DisableRegistryTools reg_dword);
試試看是不是很神奇啊?以上說的都是添加鍵值如果要刪除某些鍵值該怎麼辦呢?很簡單將WSHShellRegWrite改成WSHShellRegDelete就可以了
注意JScript不是其他語言的精簡版也不是任何事物的簡化不過它有其局限性例如您不能使用該語言來編寫獨立運行的應用程序並且沒有對讀寫文件的內置支持此外JScript腳本只能在某個解釋器或宿主上運行如ASPInternet浏覽器或者Windows腳本宿主
二用INF文件編輯注冊表
INF小知識INF是用於安裝驅動程序的文件它是文本格式的記錄著驅動程序的所有相關資料隨便打開一個INF文件可以看到許多項每一項都有特定的含義比如從Version一項就可以看出支持的Windows版本是什麼WinX系列的代號就是CHICAGOWin/XP的代號就是Windows NT
讓我們來舉個例子首先打開記事本然後在裡面輸入下面內容然後保存為addreginf
[Version]
Signature=$CHICAGO$
[DefaultInstall]
Addreg=Add
[Add]
HKLMSOFTWARE\★★小軍★★%REG_SZ%★★小軍向你表示祝賀★★!
HKLMSOFTWARE\★★小軍★★SZ字符串%REG_SZ%Congratulations!
HKLMSOFTWARE\★★小軍★★Dword雙字節%REG_Dword%
HKLMSOFTWARE\★★小軍★★Binary二進值%REG_BINARY%
HKLMSOFTWARE\★★小軍★★\測試;添加測試這個下級子鍵
[Strings]
REG_SZ=x
REG_BINARY=x
REG_DWORD=x
鼠標右鍵點擊這個INF文件選擇快捷菜單中的安裝命令如果你輸入的格式沒有錯誤的話應該在HKEY_LOCAL_MACHINE\Software下面看到一個新的主鍵★★小軍★★選中這個主鍵應該可以在右邊看到默認值為★★小軍向你表示祝賀★★!還有一個叫做SZ字符串的字符串值為Congratulations!等等
展開這個主鍵還可以看到另外一個主鍵名為測試是不是感到很奇怪啊?其實這一招並不神秘就是那個INF文件搗的鬼!
由上可知INF文件是由各個小節(Section) 組成各小節之間必須空一行小節的名字從中括號[起至]結束小節的名字是它的入口點在此文件中必須是唯一的小節名之後是小節內容形式上是鍵名稱=鍵值在文件中可以添加注釋由分號;完成分號後的內容不被解釋執行書寫INF文件的格式如上所示其各項含義如下
[Version]指明能夠使用的Windows版本
Signature系統從這裡來看是不是適合當前版本如果適合的話就執行否則不執行
[DefaultInstall]指出該INF文件包含的其他小節可將INF文件看成是以[DefaultInstall]為主干的樹在這兒我們可以加入AddReg和DelReg鍵它們指定希望添加編輯修改或是刪除注冊表項的小節名稱
Addreg=add表示在注冊表中添加內容此項就指定了要添加的⒉岜硇∠畹母鞒疲芯咛逄砑雍蛻境畔⒌男〗诰褂美嗨聘袷餃缦攏?/font>
HKEY(根鍵縮寫)Subkey(子鍵)Valuename(鍵值名)Type(鍵值類型)Value(鍵值)
其中根鍵縮寫方式很明了前兩個字符必須為HK如HKEYHKLMHKR等子鍵為不包括根鍵部分的子鍵分支鍵值為空就表示是默認值鍵值類型中如果為則指定為字符串型如果為則是二進制型鍵值中的字符串形式的必須以雙引號括起來而二進制數據則使用十六進制格式表示出來各字節之間以逗號分割
Delreg=del表示在注冊表中要刪除的內容
[Strings]是擴充用的這樣就可以避免記憶麻煩的數字了比如字符串本來應該是現在用REG_SZ表示
基本原理就這些現在我們來刪除剛剛我建立的東西在記事本裡面粘貼下面內容
[Version]
Signature=$CHICAGO$
[DefaultInstall]
Delreg=Del
[Del]
HKLMSOFTWARE\★★小軍★★\測試
HKLMSOFTWARE\★★小軍★★
然後保存為擴展名為INF的任意文件用鼠標右鍵點擊這個INF文件選擇快捷菜單中的安裝命令然後再到注冊表編輯器裡面看看是不是剛剛建立的東西沒有了怎麼樣?很神奇吧?
也許有人會問能不能只刪除一項呢?可以的比如我刪除HKEY_LOCAL_MACHINE\★★小軍★★下的那個叫做SZ字符串的字符串值那麼只需要用記事本寫下面內容
[Version]
Signuture=$CHICAGO$
[DefaultInstall]
Delreg=Del
[Del]
HKLMSOFTWARE\★★小軍★★SZ字符串
保存完畢按照同樣的方法運行即可只刪除這個字符串值
現在我們再舉個用INF文件對注冊表進行操作的例子具體說來就是用INF文件對加了鎖的注冊表進行解鎖何為加了鎖的注冊表?大家知道要禁止別人使用注冊表編輯器可以使用下面這個辦法在注冊表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVerssion\policies\system下新建DWORD值Disableregistrytools並設其鍵值為即可這樣當有人運行注冊表編輯器時就會出現注冊編輯已被管理員所禁止的對話框限制了別人使用注冊表編輯器在一定程度上保護了系統的安全
但是當自己要使用注冊表編輯器時該怎麼辦呢?我們可以用記事本編制個INF文件進行解鎖
[Version]
Signature=$CHICAGO$
[DefaultInstall]
Delreg=Del
[Del]
HKCUSoftware\Microsoft\Windows\CurrentVersion\Policies\System
Disableregistrytools
將上面的內容保存為後綴名為inf的任意文件然後用右鍵點擊它在彈出菜單中選擇安裝即可給注冊表解鎖
請大家特別注意采用此方法修改注冊表危險度很高而且格式要求也很嚴(必須使用英文標點符號而且請按照本文中的格式書寫)望大家小心使用好了就先談這麼多由於水平有限不當之處請大家批評指正
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19395.html