中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 映像劫持 解除和禁止程序运行
作者:
标题: 映像劫持 解除和禁止程序运行 上一主题 | 下一主题
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『楼 主』:  映像劫持 解除和禁止程序运行

中过机器狗的人就知道有用
:: 本工具可查看、禁止和解除禁止被映像劫持不能运行的程序 by yangzhiyi 200-04-10
:: 很多木马病毒等会用 映像劫持 技术来禁止安全软件运行,当然你也可用它来禁止木马病毒运行。
@echo off
title 映像劫持 解除和禁止程序运行

:start
cls
rd /s /q "%temp%\ifeo" 1>nul 2>nul
md "%temp%\ifeo" 1>nul 2>nul
set adir=%temp%\ifeo
set route=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

echo 正在读取已被禁止运行的程序列表
reg query "%route%" 2>nul >%adir%\1.txt
for /F "usebackq tokens=7 delims=\" %%i in (%adir%\1.txt) do @echo %%i >>%adir%\2.txt
findstr "[.]" %adir%\2.txt 2>nul > %adir%\3.txt
for /F %%i in (%adir%\3.txt) do (
reg query "%route%\%%i" /v Debugger 2>nul 1>nul && echo %%i >>%adir%\list.txt
)
del /q /f %adir%\?.txt

:input
cls
echo 已被禁止运行的程序列表
echo -------------------------------------------
IF EXIST %adir%\list.txt (type %adir%\list.txt) else (echo 无映像劫持项)
echo -------------------------------------------
echo.

echo 输入 程序名称(如qq.exe),如果程序已禁止则会解除禁止
echo 输入 a 则删除全部的禁止项目
echo 输入 d 则删除像劫持项(不推荐)
echo 输入 b 则批量禁止(在当前目录建立list.txt文件,每行一个名称)
echo 输入 x 则退出本工具
echo.
set name=
set /p name=请输入:
if /I "%name%" == "" goto input
if /I "%name%" == "a" goto 3
if /I "%name%" == "d" goto 4
if /I "%name%" == "b" goto 5
if /I "%name%" == "x" goto end
echo 已输入:%name% | findstr "[.]" || (echo 输入错误 & pause >nul & goto input)
findstr "%name%" %adir%\list.txt 2>nul 1>nul
if not %ERRORLEVEL% == 1 goto 2

:1
reg add "%route%\%name%" /v "Debugger" /t REG_SZ /d "ntsd -d # 劫持 %name% 禁止它运行" /f >nul 2>nul
echo.
echo 已禁止运行%name%
echo.
pause
goto start

:2
reg delete "%route%\%name%" /f >nul 2>nul
echo.
echo 已解除禁止运行%name%
echo.
pause
goto start

:3
for /F %%j in ('IF EXIST %adir%\list.txt type %adir%\list.txt') do (reg delete "%route%\%%j" /f 2>nul 1>nul)
echo.
echo 已解除所有禁止运行项
echo.
pause
goto start

:4
reg export "%route%" "%adir%\Image File Execution Options.reg" 2>nul 1>nul
copy /y "%adir%\Image File Execution Options.reg" "Image File Execution Options.reg" 2>nul 1>nul && echo. & echo 已备份到当前目录,有问题时请恢复。
reg delete "%route%" /f >nul 2>nul
echo.
echo 已删除整项
echo.
pause
goto start

:5
IF EXIST list.txt (
for /F %%j in (list.txt) do (reg add "%route%\%%j" /v "Debugger" /t REG_SZ /d "ntsd -d # 劫持 %name% 禁止它运行" /f >nul 2>nul)
echo.
echo 已禁止list.txt文件中的所有项
) else (
echo 当前目录无 list.txt 文件
)
echo.
pause
goto start

:end
rd /s /q "%temp%\ifeo" 1>nul 2>nul


2008-4-10 17:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 2 楼』:  

把reg.exe regedit.exe劫持了的话就..

2008-4-10 17:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  

粗略看了下,原理是对的,但临时文件太多了,建议完善。



批处理之家新域名:www.bathome.net
2008-4-10 17:49
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 4 楼』:  

临时文件好多...
建议用FOR嵌套一下..

2008-4-10 18:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『第 5 楼』:  

临时文件好多是多了点,但反正一定要有,所以多几个和少几个没什么关别,反正会删除。

2008-4-11 12:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: