其实这个原理就是利用BAT文件的转换加载修改为其他文件名后的userinit.exe文件,这样机器通过修改userinit.exe来加载破坏的目的就不能够达到了。第二个BAT文件则是锁定system32文件夹,不可写入名为userinit.exe的文件。接下来我们来看看步骤吧:
1、首先复制个无毒的userinit.exe文件,文件重命名为kill.exe(文件名可以任意取),到系统system32下。
2、修改注册表键值,将userinit.exe改为userinit.bat。内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]
"Userinit"="C:\WINDOWS\system32\userinit.bat,"


3、建立转换起用userinint.exe作用的BAT
代码原理解释为:下面红色的解释部分需要删除掉。
@echo off
解释:直接复制系统system32下的无毒userinit.exe为kill.exe
cd /d %SystemRoot%system32
copy /y userinit.exe kill.exe >nul
解释:创建userinit.bat
echo @echo off >>userinit.bat
echo start kill.exe >>userinit.bat
解释:删除自身
del /f /q %0
如果不想看上面的代码原理解释可直接复制下面的代码
@echo off
cd /d %SystemRoot%system32
copy /y userinit.exe kill.exe >nul
echo @echo off >>userinit.bat
echo start kill.exe >>userinit.bat
del /f /q %0
复制代码
将以上代码粘贴进记事本,保存为kill.bat。并运行。
4、上面的方法是用批处理重新定向了userini.exe文件的位置,换了一个文件名,并且用一个批处理调用它来启动。下面的代码就是锁定system32文件夹,让不能写入userini.exe为文件名的文件。
@echo off
set nobird=userinit.exe
set /p nobird=userinit.exe
echo.
set paths=C:\WINDOWS\system32
echo 已完成 0%%
for %%a in (%paths%) do If Exist "%%a\%nobird%" (cacls "%%a\%nobird%" /c /e /R administrators & cacls "%%a\%nobird%" /c /e /R everyone & cacls "%%a\%nobird%" /c /e /R system & cacls "%%a\%nobird%" /c /e /R users & cacls "%%a\%nobird%" /c /e /P everyone:F & cacls "%%a\%nobird%" /c /e /P administrator:F & del "%%a\%nobird%" /a/f/q & rd "%%a\%nobird%" /s/q) >nul 2>nul
echo 已完成50%%
for %%a in (%paths%) do If NOT Exist "%%a\%nobird%" (mkdir "%%a\%nobird%" && @attrib +s +r +h "%%a\%nobird%" & echo [.ShellClassInfo]>"%%a\%nobird%\Desktop.ini" & echo IconFile=%SystemRoot%\system32\SHELL32.dll>>"%%a\%nobird%\Desktop.ini" & echo IconIndex=131>>"%%a\%nobird%\Desktop.ini" & @attrib +s +r +h "%%a\%nobird%\Desktop.ini" & mkdir "%%a\%nobird%\nobird免疫目录禁止删除!..\" & cacls "%%a\%nobird%" /c /e /R administrators & cacls "%%a\%nobird%" /c /e /R everyone & cacls "%%a\%nobird%" /c /e /P Authenticated Users:N & cacls "%%a\%nobird%" /c /e /R system & cacls "%%a\%nobird%" /c /e /R users & cacls "%%a\%nobird%" /c /e /P everyone:N & cacls "%%a\%nobird%" /c /e /P administrator:N) >nul 2>nul && ECHO --正在处理 %%a
echo 已完成100%%
echo.
echo OK!userinit.exe已免疫,按任意键退出
pause>nul
exit
复制代码
把以上代码粘贴进记事本,保存为scokuser.bat到c:/windows/system32文件夹下面(如果你的系统不是安装在C盘,请保存到系统盘的windows/system32文件夹下)。并运行。
|