一步一步教你用JS和INF编辑注册表

一步一步教你用JS和INF编辑注册表,第1张

JScript小知识 JScript是一种解释型的 基于对象的脚本语言 尽管与C++这样成熟的面向对象的语言相比 JScript的功能要弱一些 但对于它的预期用途而言 JScript的功能已经足够大了 JScript程序是语句的集合 一条Jscript语句相当于英语中的一个完整句 Jscript语句将表达式组合起来 完成一个任务 一条语句由一个或多个表达式 关键字或者运算符(符号)组成 典型地 一条语句写一行 尽管一条语句可以超过两行或更多行 两条或更多条语句也可以写在同一行上 语句之间用分号 隔开 通常 每一新行开始一条新语句 分号()是JScript语句的终止字符

一 用JS编辑注册表

事实上 JS的主体和VBS文件差不多 就是结构有一点不同而已!所以我们就不多说了 下面是个用JS编辑注册表的简单例子

var WSHShell=WScript CreateObject( WScript Shell )WSHShell Popup ( 这是一个用JS编辑注册表的例子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 REG_BINARY )WSHShell RegWrite( HKLM\Example_JS\Dword REG_DWORD )WSHShell RegWrite( HKLM\Example_JS\Next NewData )WSHShell Run( Regedit )

上面这些代码中第一句是定义对象 第二句用来显示一条信息 后面几行写注册表 最后一行运行注册表编辑器 大家可以看出用JS对键值进行 *** 作时要用两斜杠 \ 并且要用 表示结束 一般只要能注意这两点 就没有问题了

再来看一个用JS编辑注册表的例子 大家知道 浏览某些恶意网页会把我们的注册表给禁用了 由于无法导入注册表文件 造成我们没有办法使用注册表编辑器 把下面的代码存为以js为后缀名的任意文件 然后双击就可以将其导入注册表中 从而给注册表解锁

VAR WSHShell=WSCRIPT CREATOBJEt( WSCRIPT SHELL )WSHShell Popup( 这是一个用JS编辑注册表的例子By YJJ )//下面的例子要在注册表中建立一个Dword值 名为DisableRegistryTools 值为 注意要说明值的类型! WSHShell RegWrite( HKCU\Sofare\Microsoft\Windows\CurrentVersion\Policies\system\DisableRegistryTools reg_dword )

试试看 是不是很神奇啊?以上说的都是添加键值 如果要删除某些键值该怎么办呢?很简单 将 WSHShell RegWrite 改成 WSHShell RegDelete 就可以了

注意 JScript不是其他语言的精简版 也不是任何事物的简化 不过 它有其局限性 例如 您不能使用该语言来编写独立运行的应用程序 并且没有对读写文件的内置支持 此外 JScript脚本只能在某个解释器或 宿主 上运行 如ASP Internet浏览器或者Windows脚本宿主

二 用INF文件编辑注册表

INF小知识 INF是用于安装驱动程序的文件 它是文本格式的 记录著驱动程序的所有相关资料 随便打开一个INF文件可以看到许多项 每一项都有特定的含义 比如从 Version 一项就可以看出支持的Windows版本是什么 Win X系列的代号就是CHICAGO Win /XP的代号就是Windows NT

让我们来举个例子 首先打开记事本 然后在里面输入下面内容 然后保存为addreg inf

[Version]Signature= $CHICAGO$

[DefaultInstall]Addreg=Add

[Add]HKLM SOFARE\小军 %REG_SZ% 小军向你表示祝贺!HKLM SOFARE\小军 SZ字符串 %REG_SZ% Congratulations!HKLM SOFARE\小军 Dword双字节 %REG_Dword% HKLM SOFARE\小军 Binary二进值 %REG_BINARY% HKLM SOFARE\小军\测试 添加 测试 这个下级子键

[Strings]REG_SZ= x REG_BINARY= x REG_DWORD= x

鼠标右键点击这个INF文件 选择快捷菜单中的 安装 命令 如果你输入的格式没有错误的话 应该在HKEY_LOCAL_MACHINE\Sofare下面看到一个新的主键 小军 选中这个主键 应该可以在右边看到默认值为 小军向你表示祝贺! 还有一个叫做 SZ字符串 的字符串值为 Congratulations! 等等

展开这个主键 还可以看到另外一个主键 名为 测试 是不是感到很奇怪啊?其实这一招并不神秘 就是那个INF文件捣的 鬼 !

由上可知 INF文件是由各个小节(Section) 组成 各小节之间必须空一行 小节的名字从中括号 [ 起至 ] 结束 小节的名字是它的入口点 在此文件中必须是唯一的 小节名之后是小节内容 形式上是 键名称=键值 在文件中可以添加注释 由分号 完成 分号后的内容不被解释执行 书写INF文件的格式如上所示 其各项含义如下

[Version] 指明能够使用的Windows版本Signature 系统从这里来看是不是适合当前版本 如果适合的话就执行 否则不执行 [DefaultInstall] 指出该INF文件包含的其他小节 可将INF文件看成是以[DefaultInstall]为主干的树 在这儿我们可以加入AddReg和DelReg键 它们指定希望添加 编辑 修改或是删除注册表项的小节名称 Addreg=add 表示在注册表中添加内容 此项就指定了要添加的⒉岜硇∠畹母鞒疲芯咛逄砑雍蜕境畔⒌男〗诰褂美嗨聘袷饺缦拢?/font>

HKEY(根键缩写) Subkey(子键) Valuename(键值名) Type(键值类型) Value(键值)

其中根键缩写方式很明了 前两个字符必须为HK 如HKEY HKLM HKR等 子键为不包括根键部分的子键分支 键值为空就表示是默认值 键值类型中 如果为 则指定为字符串型 如果为 则是二进制型 键值中的字符串形式的必须以双引号括起来 而二进制数据则使用十六进制格式表示出来 各字节之间以逗号 分割

Delreg=del 表示在注册表中要删除的内容[Strings] 是扩充用的 这样就可以避免记忆麻烦的数字了 比如字符串本来应该是 现在用REG_SZ表示

基本原理就这些 现在我们来删除刚刚我建立的东西 在记事本里面粘贴下面内容

[Version]Signature= $CHICAGO$

[DefaultInstall]Delreg=Del

[Del]HKLM SOFARE\小军\测试 HKLM SOFARE\小军

然后保存为扩展名为 INF的任意文件 用鼠标右键点击这个INF文件 选择快捷菜单中的 安装 命令 然后再到注册表编辑器里面看看 是不是刚刚建立的东西没有了 怎么样?很神奇吧?

也许有人会问 能不能只删除一项呢?可以的 比如我删除HKEY_LOCAL_MACHINE\小军下的那个叫做 SZ字符串 的字符串值 那么只需要用记事本写下面内容

[Version]Signuture= $CHICAGO$

[DefaultInstall]Delreg=Del

[Del]HKLM SOFARE\小军 SZ字符串

保存完毕 按照同样的方法运行即可只删除这个字符串值

现在 我们再举个用INF文件对注册表进行 *** 作的例子 具体说来就是用INF文件对加了锁的注册表进行解锁 何为加了锁的注册表?大家知道 要禁止别人使用注册表编辑器 可以使用下面这个办法 在注册表HKEY_CURRENT_USER\Sofare\Microsoft\Windows\CurrentVerssion\policies\system下 新建DWORD值Disableregistrytools 并设其键值为 即可 这样 当有人运行注册表编辑器时就会出现 注册编辑已被管理员所禁止 的对话框 限制了别人使用注册表编辑器 在一定程度上保护了系统的安全

但是当自己要使用注册表编辑器时该怎么办呢?我们可以用记事本编制个INF文件进行解锁

[Version]Signature= $CHICAGO$

[DefaultInstall]Delreg=Del

[Del] HKCU Sofare\Microsoft\Windows\CurrentVersion\Policies\System Disableregistrytools

将上面的内容保存为后缀名为 inf的任意文件 然后用右键点击它 在d出菜单中选择 安装 即可给注册表解锁

lishixinzhi/Article/program/Java/JSP/201311/19395

在DefaultInstall 指定项目,写注册表的语法为根键,"子键",键名,键值类型,键值例如我们写这一行[HKEY_CLASSES_ROOT\CLSID\{E1D2BF40-A96B-11d1-9C6B-0000F875AC61}]

@="MSDAIPP.BINDER"那么用inf完成则是 [version]

signature="$Windows NT$"///声明系统

[defaultinstall]

Addreg=add ///对注册表进行添加 *** 作,并指定项目add 如果是删除则为Delreg

[add]

HKCR,"CLSID\{E1D2BF40-A96B-11d1-9C6B-0000F875AC61}",,%REG_SZ%,MSDAIPP.BINDER 注意这里键名取默认,因此留空了,但逗号不能省 REG_SZ表明键值为字符串类型所有字符均为半角英文,而且无空格


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11904277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存