用批处理文件来操作注册表

bat 脚本批处理操作注册表 关于操作注册表的命令reg的对应帮助信息,如下所示: C:\Users\Administrator>reg /? REG Operation [Parameter List] Operation [ QUERY | ADD | DELETE | COPY | SAVE | LOAD | UNLOAD | RESTORE | COMPARE | EXPORT | IMPORT | FLAGS ] 返回 阅读详情
--创建

创建分为两种,一种是创建子项(Subkey)
注:如果你对注册表的命名不是很清楚,可以看看注册表命名标准手册(http://www.sometips.com/tips/registryhack/204.htm)

我们创建一个文件,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]

然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE/SOFTWARE/下创建了一个名字为“Test4Adam”的子项。

另一种是创建一个项目名称
那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]
"Test1"="Adam"
"Test2"=hex:61
"Test3"=dword:00000064

Test1的类型是“String Value”
Test2的类型是“Binary Value”
Test3的类型是“DWORD Value”

注意:如果你的注册表中不存在Test4Adam这个子项,那么该脚本会为你创建该子项。

--修改
修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入即可,在此我就不再赘述。

--删除
我们首先来说说删除一个项目名称,我们创建一个如下的文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]
"Test1"=-

执行该脚本,HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam下的"Test1"就被删除了;

我们再看看删除一个子项,我们创建一个如下的脚本:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]

执行该脚本,HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam就已经被删除了。

相信看到这里,.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了,记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。就像上面那个例子:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]
"Test1"="Adam"
"Test2"=hex:61
"Test3"=dword:00000064
只需要这样:
@echo Windows Registry Editor Version 5.00>>test.reg

@echo [HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]>>test.reg
@echo "Test1"="Adam">>test.reg
@echo "Test2"=hex:61>>test.reg
@echo "Test3"=dword:00000064>>test.reg


================================================

一、RegWrite(写入或新建注册表数据)

  * 新建子主键

  语法为:WshShell.RegWrite "子主键名/"

  例如,我们想新建一个子主键“HKEY_CURRENT_USER/MyReg”,可使用如下的语句:

  WshShell.RegWrite "HKCU/MyReg/"

  说明:子主键名必须以反斜线 (/) 结束,若不小心忘记输入了这个(/),则该方法返回的是键值,即表示你是想在  HKEY_CURRENT_USER/下建立了一个名叫MyReg的键值了。这一点一定要十分注意!

  注意引号里子主键的开头必须是下列根键名之一:



  HKEY_CURRENT_USER(可简写为HKCU)、HKEY_LOCAL_MACHINE (HKLM)、HKEY_CLASSES_ROOT(HKCR)、  HKEY_USERS和HKEY_CURRENT_CONFIG
  * 在子主键下建立新的键值(或改写已有的键值的数据)

  语法为:WshShell.RegWrite "子主键名/键值名","键值的数据","键值的类型"

  例如我们想在子主键“HKEY_CURRENT_USER/MyReg” 下新建一个字符串键值KeyValue,设置键值的数据为“str”,可使用如下的语句:

  WshShell.RegWrite "HKCU/MyReg/KeyValue", "str"

  (注:键值为字符串值,可省去"键值类型"的声明)

  若所建的为二进制值或DWORD值,数据为“1”,则还必须声明键值的类型,如下:

  WshShell.RegWrite "HKCU/MyReg/KeyValue",1,"REG_BINARY"

  WshShell.RegWrite "HKCU/MyReg/KeyValue",1,"REG_DWORD"

  注意二进制值和DWORD值的数据不能加引号,而字符串值的数据则必须加引号。

  二、RegDelete(删除注册表数据)

  * 删除一个子主键

  语法为:WshShell.RegDelete "子主键名/"

  例如,我们想删除子主键“HKEY_CURRENT_USER/MyReg”,可使用如下的语句:

  WshShell.RegDelete "HKCU/MyReg/"

  * 删除子主键的某个键值

  语法为:WshShell.RegDelete "子主键名/键值名"

  例如,我们想删除子主键“HKEY_CURRENT_USER/MyReg” 的键值KeyValue,可使用如下的语句:

  WshShell.RegDelete "HKCU/MyReg/KeyValue"

  类似于RegWrite,有一个“/”号表示的是删除子主键,没有“/”则表示要删除的是子主键下的键值。
除了WshShell对象外,我们还必须了解一下WScirpt 对象。WScirpt对象即代表Scripting Engine,只要启动Engine就会自动产生此对象。WScript对象提供了创建和读取对象的方法。要使用WSH的其他对象(例如WshShell对象),就必须先用WScript对象的有关方法(CreateObject、GetObject)来创建和读取。

  创建对象的语法如下:

  WScript.CreateObject(strProgID)

  其中strProgID就是我们所要创建的对象的标识名。

  例如:我们要使用WshShell对象及其属性和方法,首先就要用WScript对象的方法CreateObject来创建一个WshShell对象,语句如下:

  Set WSHShell = WScript.CreateObject("WScript.Shell")

  举一个例子吧。大家都知道,如果你使用了“开始”菜单中的“运行”,Windows将在列表框里记录下你“作案” 的痕迹。其实这些数据是记录在注册表中HKEY_CURRENT_USER/Software/Microsoft/Windows/

  CurrentVersion/Explorer/RunMRU子键下,我们只要把这个子键删除,然后再重新建立,不就可以了吗?

  现在我们可以来编写一个脚本了。以VBS为例,我们可以用记事本新建一个文件,然后输入(其中“//”后的文字为注释,不必输入):

  //定义对象,要编辑注册表,我们需要使用WSHShell对象及其方法

  Dim WSHShell

  //对象的方法CreateObject来创建WSHShell对象

  Set WSHShell = WScript.CreateObject("WScript.Shell")

  //然后我们使用WSHShell对象的方法RegDelete来删除 HKEY_CURRENT_USER/Software/Microsoft/

  Windows/CurrentVersion/Explorer/RunMRU子键

  WSHShell.RegDelete "HKCU/Software/Microsoft/

  Windows/CurrentVersion/Explorer/RunMRU/"

  //最后我们恢复该主键,并在该主键下恢复字符串值“MRUList”,设置其数据为空串

 WSHShell.RegWrite "HKCU/Software/Microsoft/

  Windows/CurrentVersion/Explorer/RunMRU/MRUList",""

  程序到此结束,我们把文件另存为CleanMRU.vbs就可以了。现在我们就可以使用Scripting Engine来执行这个程序了。假设我们刚才把这个文件保存在D:/TEMP里,我们就可以使用“开始”菜单的“运行”——Wcript.exe D:/TEMP/CleanMRU.vbs。重新启动,怎么样?“运行”里已经是空空如也了吧!

  如果我们这样费尽心思地编了程序,最后还是得靠手工来运行,那还不如每次直接用注册表编辑器来操作呢!其实我们完全可以让它在每次开机时自动加载。这么一说,大家肯定都知道了——我们可以使用注册表编辑器,在“HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/

  CurrentVersion/Run”子主键下建立一个字符串值 “CleanMRU”,设置其数据为"Wcript.exe D:/TEMP/CleanMRU.vbs"。嘿嘿,这样才算大功告成。以后你每次开机,Windows就会自动执行该脚本以清除 “运行”中的历史记录了。

  限于篇幅,本文仅仅介绍了WSH有关注册表修改部分的对象的初步使用。我们只要在脚本里加上一些简单的语句,就可以很方便地实现交互性的操作——当然,这就需要大家掌握更多的关于WSH和VBScript的知识。如果感兴趣的话,大家可以到微软网站下载有关WSH和VBScript的帮助文档,URL分别是http://www.microsoft.com/china/ scripting/windowshost/wshdoc.exe和http://www.microsoft.com/china/scripting/vbscript/download/ vbsdoc.exe(都是中文)。另外,在Windows的Samples目录下,有一个WSH文件夹,那里面有不少.vbs和.js例程,大家可以去打开来看看(鼠标右击图标,选择“编辑”),相信一定会有不少收获的。

  最后,如果你的机器上已经安装了Windows Scripting Host,而VBS程序仍然无法运行的话,很可能是你自己或其他应用程序修改了.VBS的关联。据笔者所知,几乎每台机器上都装有的“超级解霸”就会修改.VBS文件的关联。没关系的,你只要从“控制面板”—“添加/删除程序”—“Windows安装程序”—“附件”—“详细资料”里先卸掉,然后再重新装上“Windows Scripting Host”就可以了。
代码实现操作拥有TrustedInstaller权限注册表 前段时间要做一项工作,需要tong'guo'dai'ma 阅读详情

相关推荐

五.如何用批处理文件操作注册表

在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、木马程序而删除Run下残余的键值。或者创建一个服务用以加载后 门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件来操 作注册表.(我们可以用批处理来生成一个REG文件) 关于注册表操作,常见的是创建、修改、删除。1.创建 创

xingpidong 724

批处理 修改注册表 禁用USB

需要禁用本机USB接口。可通过修改注册表来实现,最简单的方式就是用批处理执行。 首先 HKLM\SYSTEM\CurrentControlSet\services\USBSTOR 下Start值该为4后,USB设备不可使用。下面就用两种简单恶批处理来实现修改注册表操作:1.Di

野百合的专栏 4650

解决BAT批处理文件名时乱码问题,网上的方法都没有考虑到普通用户权限没办法修改注册表

我这里只是示意一个,某一次不小心批处理几千个文件,结果几千个文件乱码,当时心是多慌呀,撤销只能撤销一个!然后沮丧的开始一个个的复制粘贴把文件名改回来(⊙﹏⊙)b,就这样麻木的复制了二三十个后,想到用RPA的方法,但程式也没什么好思路来思考。只能作用于当前打开的窗口,关掉CMD后再开就无效了: 进入cmd窗口后,输入“chcp 65001”运行,执行完后,cmd的编码格式就是UTF-8,可看属性看到。但是,这是临时的,只要CMD界面不小心关闭了,就得记得重新输入“chcp 65001”运行,太不方便了!

weixin_44845102的博客 4934

编写注册表reg文件批处理操作注册表

编写注册表文件新建一个文本文件,在其中输入以下内容: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableRegistryTools"=dword:00000000 注意:“REGEDIT4”这行与后面行之间

不若乘风来 8564

如何用批处理文件操作注册表

  在***过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、***程序而删除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件操作注册表.(我们可以用批处理来生成一个REG文件)   关于注册表的...

weixin_34301307的博客 272

批处理或Reg文件操作注册表

关于注册表操作,常见的是创建、修改、删除。 1.创建 创建分为两种,一种是创建子项(Subkey) 我们创建一个文件,内容如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker] 然后执行该脚本,你就已经在HKEY_LOC...

aiman5818的博客 241

批处理教程5——如何用批处理文件操作注册表

五.如何用批处理文件操作注册表在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、木马程序而删除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件操作注册表.(我们可以用批处理来生成一个REG文件)关于注册表操作,常

Wind_Lam的专栏 605

使用批处理文件操作注册表

在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、木马程序而删除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件操作注册表.(我们可以用批处理来生成一个REG文件)  关于注册表操作,常见的是创建、修改、删除。 1.创...

miaozk2006的专栏 281

卸载第一步:统计安装文件注册表操作(批处理) FOR MSI

声明:本人水平有限,如有错误,欢迎批评指正,禁止用于非法目的,请保持代码纯净完整。   前言: 想用批处理做个统计安装包安装什么文件,往注册表写入什么值并卸载的工具,本篇文章只做了第一步,分析安装的文件注册表列表。做这个工具有多种方法:1.记录硬盘和注册表的变动情况 2.分析安装包 3.安装时记录安装日志 4.已知晓各个安装包安装了哪些注册了哪些(名单),本篇文章使用的是第3种方法,其他方

humors221的专栏 1159

【转】批处理修改注册表

一,批处理生成.Reg文件操作注册表  用批处理中的重定向符号可以轻松地生成.reg文件。然后用命令执行.reg文件即可!  这里,着重要了解.reg文件操作注册表的方法。  首先.reg文件首行必须是:Windows Registry Editor Version 5.00。然后才是操作注册表的内容。  (就和从注册表中导出的文件格式一致)  1,创建子项 Windows Re...

weixin_30323631的博客 447

Windows 注册表操作 | 从批处理到 PowerShell 的实践

……

u013669912的博客 1019

批处理操作注册表完全攻略(读取注册表/写入注册表等)

一,批处理生成.Reg文件操作注册表  用批处理中的重定向符号可以轻松地生成.reg文件。然后用命令执行.reg文件即可!  这里,着重要了解.reg文件操作注册表的方法。  首先.reg文件首行必须是:Windows Registry Editor Version 5.00。然后才是操作注册表的内容。  (就和从注册表中导出的文件格式一致)  1,创建子项  Windows Re

jumtre的专栏 1万+

Windows批处理脚本学习

以单分号开头的,同一个文件里可以不使用EXIT,结束标志以回车空行做分界线。EXIT /B 0::/B可以在退出时,不显示信息,输出更加整洁@echo offecho %2%pause:eejdjdjdjecho helloecho wwwww。

qq_55038440的博客 6065

批处理检测注册表项目是否存在并运行指定命令

批处理检测注册表项目是否存在并运行指定命令 要实现上面说的功能就必须要用到批处理操作注册表命令「REG QUERY」,这个命令的大体功能就是可以查询相关注册表项目。 先来看下「REG QUERY」命令介绍: REG QUERY KeyName [/v ValueName | /ve] [/s] KeyName [\Machine\]FullKey Machine 远程机器名 – 忽略当...

mimishy2000的博客 7592

windows批处理(cmd/bat)编程详解

windows批处理(cmd/bat)编程详解          开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多。cmd文件只有在windows2000以上的系统中才能运行,而bat文件则没有这个限制。从它们的文件描述中也可以看出以上的

bingjie1217的专栏 10万+
上一篇: VBS脚本常用代码
sunkists
博客等级 码龄20年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值