|
gene771771
初级用户
积分 105
发帖 77
注册 2006-11-9 来自 重庆
状态 离线
|
『楼 主』:
[原创]如何用setacl在批处理中修改注册表的权限呢?
我用setacl2.0.2.0该注册表权限的时候遇到问题了。。。
我英文不好,作者写的语法我看不懂,麻烦帮我解释一下下吧。。。
比如我想要改
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL"
和“HKEY_CLASSES_ROOT\.exe”
这个两个键值为只读,该怎么写呢?
这是setacl的下载地址:
http://sourceforge.net/project/s ... mp;package_id=68032
谢谢。
这是我试着写的一个
@echo off
:again
set UpdatePolicy=GPUpdate /Force>nul 2>nul
echo 1
setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:grant;w:dacl" -op "dacl:p_c"
setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:aud_succ;w:sacl" -op "sacl:p_c"
%UpdatePolicy%>nul 2>nul
ENDLOCAL
pause
set UpdatePolicy=GPUpdate /Force>nul 2>nul
echo 2
setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:revoke;w:dacl" -op "dacl:p_nc"
setacl -on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" -ot reg -ace "n:everyone;p:read;m:aud_fail;w:sacl" -op "sacl:p_nc"
%UpdatePolicy%>nul 2>nul
ENDLOCAL
pause
goto again
虽然操作成功,但是并没有修改其权限。
[ Last edited by gene771771 on 2006-12-1 at 01:37 PM ]
|
|
2006-11-17 09:19 |
|
|
ronin
中级用户
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
『第
2 楼』:
setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /registry /grant everyone /read
参考下
|
|
2006-11-30 10:52 |
|
|
gene771771
初级用户
积分 105
发帖 77
注册 2006-11-9 来自 重庆
状态 离线
|
『第
3 楼』:
呵呵
非常谢谢你,但是你说的是0.9.80,我用的是setacl2.0.2.0,语法修改很多了,在专研了一天英文后我自己作出来了。
|
|
2006-11-30 11:19 |
|
|
ronin
中级用户
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
『第
4 楼』:
能不能讲你的代码提供下,这几天为这个头疼的很
|
|
2006-12-1 03:58 |
|
|
gene771771
初级用户
积分 105
发帖 77
注册 2006-11-9 来自 重庆
状态 离线
|
『第
5 楼』:
我把源码发上来
我把源码发上来,测试环境 windows xp sp2
@echo off
color 17
mode con: cols=80 lines=40
:Selection
set UpdatePolicy=GPUpdate /Force>nul 2>nul
echo.
echo *******************************************************************************
echo * *
echo * 晗 晗 制 造 *
echo * *
echo *******************************************************************************
echo.
echo 声明:病毒免疫工具
Echo.
Echo 木马和病毒是通过注册表的自启动项,文件关联,系统服务实现自启动的。
echo 本程序将:
echo.
echo 设置 注册表隐藏文件键值为只读。
echo 设置 注册表自启动项为只读。
echo 设置 注册表重要文件关联为只读。
echo 设置 注册表所有服务为只读。
echo.
echo.
echo 请选择需要执行的操作
echo.
echo [1] 安装
echo [2] 卸载 (恢复系统默认)
echo [3] 退出
echo.
echo 提示:请务必确定你的计算机无毒。
echo.
set /p name= 请输入[1,2,3]
if not errorlevel 1 goto goon
cls
goto Selection
:goon
if /i %name%==1 echo.&echo 你选择了 安装&goto install
if /i %name%==2 echo.&echo 你选择了 卸载 (恢复系统默认)&goto uninstall
if /i %name%==3 echo.&echo 你选择了 退出&goto quit
cls
goto Selection
:install
echo.
set OP=-ot reg -actn ace -ace "n:everyone;p:read;m:grant;w:dacl" -actn setprot -op "dacl:p_nc"
set choice=安装
echo Y|cacls "%USERPROFILE%\「开始」菜单\程序\启动" /C /P everyone:r>nul 2>nul
echo Y|cacls "%ALLUSERSPROFILE%\「开始」菜单\程序\启动" /C /P everyone:r>nul 2>nul
goto Doit
:uninstall
echo.
set OP=-ot reg -actn ace -ace "n:everyone;p:read;m:revoke;w:dacl" -actn setprot -op "dacl:np"
set choice=卸载
echo Y|cacls "%USERPROFILE%\「开始」菜单\程序\启动" /C /P everyone:f>nul 2>nul
echo Y|cacls "%ALLUSERSPROFILE%\「开始」菜单\程序\启动" /C /P everyone:f>nul 2>nul
goto Doit
:Doit
echo 修复注册表键值......
rem 修复文件关联
ftype exefile="%%1" %%*>nul 2>nul
assoc .exe=exefile>nul 2>nul
ftype comfile="%%1" %%*>nul 2>nul
assoc .com=comfile>nul 2>nul
ftype scrfile="%%1" %/S>nul 2>nul
assoc .scr=scrfile>nul 2>nul
ftype txtfile=%%SystemRoot%%\system32\NOTEPAD.EXE %%1>nul 2>nul
assoc .txt=txtfile>nul 2>nul
ftype chm.file="c:\windows\hh.exe" %%1>nul 2>nul
assoc .chm=chm.file>nul 2>nul
ftype batfile="%%1" %%*>nul 2>nul
assoc .bat=batfile>nul 2>nul
ftype cmdfile="%%1" %%*>nul 2>nul
assoc .cmd=cmdfile>nul 2>nul
ftype hlpfile=%%SystemRoot%%\system32\winhlp32.exe %%1>nul 2>nul
assoc .hlp=hlpfile>nul 2>nul
ftype inffile=%%SystemRoot%%\System32\NOTEPAD.EXE %%1>nul 2>nul
assoc .inf=inffile>nul 2>nul
ftype inifile=%%SystemRoot%%\System32\NOTEPAD.EXE %%1>nul 2>nul
assoc .ini=inifile>nul 2>nul
ftype piffile="%%1" %%*>nul 2>nul
assoc .pif=piffile>nul 2>nul
ftype regedit=regedit.exe %%1>nul 2>nul
ftype regfile=regedit.exe "%%1">nul 2>nul
assoc .reg=regfile>nul 2>nul
rem 修复隐藏文件
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v CheckedValue /t reg_dword /d 1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v DefaultValue /t reg_dword /d 2 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v UncheckedValue /t reg_sz /d 1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v CheckedValue /t reg_dword /d 0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v DefaultValue /t reg_dword /d 0 /f>nul 2>nul
rem 修复AppInit_DLLs
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t reg_sz /f>nul 2>nul
echo 操作成功结束
echo.
echo %choice%病毒免疫工具......
rem HKLM
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" %OP%>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" %OP%>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices" %OP%>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX" %OP%>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX" %OP%>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx" %OP%>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v CheckedValue /t reg_dword /d 1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" /v DefaultValue /t reg_dword /d 2 /f>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL" %OP%>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v UncheckedValue /t reg_sz /d 1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v CheckedValue /t reg_dword /d 0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" /v DefaultValue /t reg_dword /d 0 /f>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden" %OP%>nul 2>nul
rem HKCU
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" %OP%>nul 2>nul
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" %OP%>nul 2>nul
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices" %OP%>nul 2>nul
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX" %OP%>nul 2>nul
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX" %OP%>nul 2>nul
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx" %OP%>nul 2>nul
setacl -on "hkcu\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce" %OP%>nul 2>nul
rem HKCR
setacl -on "hkcr\.exe" %OP%>nul 2>nul
setacl -on "hkcr\.com" %OP%>nul 2>nul
setacl -on "hkcr\.scr" %OP%>nul 2>nul
setacl -on "hkcr\.txt" %OP%>nul 2>nul
setacl -on "hkcr\.chm" %OP%>nul 2>nul
setacl -on "hkcr\.bat" %OP%>nul 2>nul
setacl -on "hkcr\.cmd" %OP%>nul 2>nul
setacl -on "hkcr\.hlp" %OP%>nul 2>nul
setacl -on "hkcr\.inf" %OP%>nul 2>nul
setacl -on "hkcr\.ini" %OP%>nul 2>nul
setacl -on "hkcr\.pif" %OP%>nul 2>nul
setacl -on "hkcr\.reg" %OP%>nul 2>nul
setacl -on "hkcr\exefile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\inifile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\txtfile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\comfile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\batfile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\inffile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\scrfile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\chm.file\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\cmdfile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\hlpfile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\piffile\shell\open\command" %OP%>nul 2>nul
setacl -on "hkcr\regfile\shell\open\command" %OP%>nul 2>nul
rem AppInit_DLLs
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t reg_sz /f>nul 2>nul
setacl -on "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" %OP%>nul 2>nul
echo 操作成功结束
echo.
echo 正在更新帐户策略、审核策略......
REM 刷新本地安全策略
%UpdatePolicy%>nul 2>nul
echo 操作成功结束
echo.
echo.
echo 所有操作成功完成!
:quit
ENDLOCAL
echo.
echo.
title "(*^@^*)"晗晗的QQ:305158720
echo $$$ 晗晗制造,版本1.0 $$$
pause>nul 2>nul
[ Last edited by gene771771 on 2007-1-17 at 11:55 PM ]
|
|
2006-12-1 04:42 |
|
|
ronin
中级用户
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
『第
6 楼』:
看了你这个代码,和我的要求不一样,我打算用用批处理来限制用户对一些文件不能删除,我用0.9版本,都是只能控制这个文件只读不能修改,但没办法不能删除,gene771771有没有这方面的经验,可以控制文件夹属性只读,就是里面全部文件不能删除,但这个要求是在system32里面的一个文件要保护
|
|
2006-12-3 23:33 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
7 楼』:
我好用的0.87,汗~下个新的回去看看
|
|
2006-12-4 01:54 |
|
|
gene771771
初级用户
积分 105
发帖 77
注册 2006-11-9 来自 重庆
状态 离线
|
『第
8 楼』:
TO ronin
我研究了setacl对dacl列表的修改,它还有防止文件删除的功能,其实原理和CACLS命令是一个原理,但是好像没有防止注册表键值不能删除的功能吧。。。
|
|
2006-12-7 02:03 |
|
|
0401
中级用户
带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『第
9 楼』:
记得深山红叶也有用SETACL来修改IE的某些注册表项的权限的,SETACL命令行好复杂,没去研究过。
|
|
2006-12-7 05:55 |
|
|
tathatayx
初级用户
积分 23
发帖 11
注册 2006-11-7 来自 四川成都
状态 离线
|
『第
10 楼』:
高手论道,我辈茫然!
但提高大啊!
|
|
2006-12-7 08:32 |
|
|
ronin
中级用户
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
『第
11 楼』:
深山红叶使用SETACL0.98版本,基本上实现功能和gene771771一样,2.0的复杂很多
|
|
2006-12-7 22:32 |
|
|
ronin
中级用户
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
『第
12 楼』:
setacl和cacls设置了文件任意人只读,但只是不能修改,可以替换和删除
|
|
2006-12-12 23:26 |
|
|
gene771771
初级用户
积分 105
发帖 77
注册 2006-11-9 来自 重庆
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by ronin at 2006-12-12 10:26:
setacl和cacls设置了文件任意人只读,但只是不能修改,可以替换和删除 |
|
用CACLS可以实现,可以不用它。它语法比较难操作。
|
|
2006-12-13 02:32 |
|
|
rubik
初级用户
积分 102
发帖 35
注册 2006-3-16
状态 离线
|
『第
14 楼』:
呵呵
注册表的权限很好改的,哪有这么麻烦,一条命令就够了。
看来是不是我也可以来写个“软件”了
|
|
2007-1-6 01:06 |
|
|
godkuku
新手上路
积分 4
发帖 2
注册 2007-11-20
状态 离线
|
『第
15 楼』:
同样遇到这个问题了呢....
setacl.exe -on "c:\1.txt" -ot "file" -ace "n:admins;p:read;m:deny;w:dacl"
例如此行,不管c:\下是否存在1.txt都会显示SetACL finished successfully,操作成功。我也是啃了两天的英文。快脑残掉啦都
|
|
2007-11-20 15:40 |
|