Xiaobo Sun

          Eclipse-Unix http://umlfact.berlios.de/~s_xsun/

          tar -xvf foo.tar, tar -xzvf foo.tar.gz

          tar -xvf foo.tar, tar -xzvf foo.tar.gz

          posted @ 2008-10-09 16:07 Xiaobo Sun 閱讀(394) | 評論 (0)編輯 收藏

          ps -aux | grep "lct*"

          ps -aux | grep "lct*"

          posted @ 2008-10-09 16:07 Xiaobo Sun 閱讀(208) | 評論 (0)編輯 收藏

          umlenkung >> , 2>

          umlenkung >> , 2>

          posted @ 2008-10-09 16:06 Xiaobo Sun 閱讀(182) | 評論 (0)編輯 收藏

          linux kernel version >uname -r

          linux kernel  version
           uname -r

          posted @ 2008-10-09 16:04 Xiaobo Sun 閱讀(292) | 評論 (0)編輯 收藏

          Dir size >du -k (kilo byte)

          Dir size      du -k (kilo byte)

          posted @ 2008-10-09 16:03 Xiaobo Sun 閱讀(196) | 評論 (0)編輯 收藏

          cd

          cd ~ : go to your home directory
          cd
          - : go to the last directory you were in
          cd
          .. : go up a directory

          posted @ 2008-10-09 15:28 Xiaobo Sun 閱讀(219) | 評論 (0)編輯 收藏

          Makefile example

          #libxml2 and glibmm are not neccessary to compile the main.cpp
          #macro
          libxml2:=../../libxml2
          libxml++:=..
          glibmm:=../../glibmm
          #adds include directives
          CC:=g++
          CCINCLUDE:= -I$(libxml++)/include/libxml++-2.6 -I$(libxml++)/lib/libxml++-2.6/include "
                  -I$(libxml2)/include -I$(glibmm)/include
          #linking
          LD:=g++
          LDSTDLIBS:= -L$(libxml++)/lib -L$(libxml2)/lib -L$(glibmm)/lib
          LDLIBS:= -lxml++-2.6
          LDLIBFLAGS:= -shared $(LDLIBS) $(LDSTDLIBS)
          LDEXEFLAGS:= $(LDSTDLIBS) $(LDLIBS)
          #extending library path
          #export VAR:=... means make it effective in the subprocess(Makefile)
          #export LD_LIBRARY_PATH:=... doesn't work because it's only effective in the subprocesses, not parentprocess(shell)
          #therefore the LD_RUN_PATH which allocates dynamic libs to the exe file must be set and export to take effect in the ld cmd
          LD_LIBRARY_PATH:=$(libxml++)/lib:$(LD_LIBRARY_PATH)
          export LD_RUN_PATH:=$(LD_LIBRARY_PATH)
          #list of source files for building the target
          SRC:= main.cpp
          OBJ:=$(patsubst %.cpp,%.o,$(filter %.cpp,$(SRC)))
          #targets
          # $^ everyone behinds the : , and $< first one behinds the :
          # $(OBJ): %.o: %.cpp is another common implicit rule is for the construction of .o files out of .cpp
          .PHONY: all clean
          all: $(OBJ)
                  $(LD) $(LDEXEFLAGS) $^ -o $@

          $(OBJ): %.o: %.cpp
                  $(CC) $(CCINCLUDE) -c $< -o $@
          clean:
                  rm -f $(OBJ) all *~ \.*.swp

          posted @ 2008-10-09 13:55 Xiaobo Sun 閱讀(994) | 評論 (3)編輯 收藏

          umask

          1) 文件的最大權限rwx rwx rwx (777)
          2 ) u m a s k值為0 2 2 - - - -w- -w-
          3) 目錄權限rwx r-x r-x (755) 這就是目錄創建缺省權限
          4) 文件權限rw- r-- r-- (644) 這就是文件創建缺省權限

          posted @ 2008-08-08 11:41 Xiaobo Sun 閱讀(172) | 評論 (0)編輯 收藏

          TCP: SYN ACK FIN RST PSH URG

          三次握手Three-way Handshake

          一個虛擬連接的建立是通過三次握手來實現的

          1. (B) --> [SYN] --> (A)

          假如服務器A和客戶機B通訊. 當A要和B通信時,B首先向A發一個SYN (Synchronize) 標記的包,告訴A請求建立連接.

          注意: 一個 SYN包就是僅SYN標記設為1的TCP包(參見TCP包頭Resources). 認識到這點很重要,只有當A受到B發來的SYN包,才可建立連接,除此之外別無他法。因此,如果你的防火墻丟棄所有的發往外網接口的SYN包,那么你將不 能讓外部任何主機主動建立連接。

          2. (B) <-- [SYN/ACK] <--(A)

          接著,A收到后會發一個對SYN包的確認包(SYN/ACK)回去,表示對第一個SYN包的確認,并繼續握手操作.

          注意: SYN/ACK包是僅SYN 和 ACK 標記為1的包.

          3. (B) --> [ACK] --> (A)

          B收到SYN/ACK 包,B發一個確認包(ACK),通知A連接已建立。至此,三次握手完成,一個TCP連接完成

          Note: ACK包就是僅ACK 標記設為1的TCP包. 需要注意的是當三此握手完成、連接建立以后,TCP連接的每個包都會設置ACK位

          這就是為何連接跟蹤很重要的原因了. 沒有連接跟蹤,防火墻將無法判斷收到的ACK包是否屬于一個已經建立的連接.一般的包過濾(Ipchains)收到ACK包時,會讓它通過(這絕對不是個 好主意). 而當狀態型防火墻收到此種包時,它會先在連接表中查找是否屬于哪個已建連接,否則丟棄該包

          四次握手Four-way Handshake

          四次握手用來關閉已建立的TCP連接

          1. (B) --> ACK/FIN --> (A)

          2. (B) <-- ACK <-- (A)

          3. (B) <-- ACK/FIN <-- (A)

          4. (B) --> ACK --> (A)

          注意: 由于TCP連接是雙向連接, 因此關閉連接需要在兩個方向上做。ACK/FIN 包(ACK 和FIN 標記設為1)通常被認為是FIN(終結)包.然而, 由于連接還沒有關閉, FIN包總是打上ACK標記. 沒有ACK標記而僅有FIN標記的包不是合法的包,并且通常被認為是惡意的

          連接復位Resetting a connection

          四次握手不是關閉TCP連接的唯一方法. 有時,如果主機需要盡快關閉連接(或連接超時,端口或主機不可達),RST (Reset)包將被發送. 注意在,由于RST包不是TCP連接中的必須部分, 可以只發送RST包(即不帶ACK標記). 但在正常的TCP連接中RST包可以帶ACK確認標記

          請注意RST包是可以不要收到方確認的?

          無效的TCP標記Invalid TCP Flags

          到目前為止,你已經看到了 SYN, ACK, FIN, 和RST 標記. 另外,還有PSH (Push) 和URG (Urgent)標記.

          最常見的非法組合是SYN/FIN 包. 注意:由于 SYN包是用來初始化連接的, 它不可能和 FIN和RST標記一起出現. 這也是一個惡意攻擊.

          由于現在大多數防火墻已知 SYN/FIN 包, 別的一些組合,例如SYN/FIN/PSH, SYN/FIN/RST, SYN/FIN/RST/PSH。很明顯,當網絡中出現這種包時,很你的網絡肯定受到攻擊了。

          別的已知的非法包有FIN (無ACK標記)和"NULL"包。如同早先討論的,由于ACK/FIN包的出現是為了關閉一個TCP連接,那么正常的FIN包總是帶有 ACK 標記。"NULL"包就是沒有任何TCP標記的包(URG,ACK,PSH,RST,SYN,FIN都為0)。

          到目前為止,正常的網絡活動下,TCP協議棧不可能產生帶有上面提到的任何一種標記組合的TCP包。當你發現這些不正常的包時,肯定有人對你的網絡不懷好意。

          UDP (用戶數據包協議User Datagram Protocol)
          TCP是面向連接的,而UDP是非連接的協議。UDP沒有對接受進行確認的標記和確認機制。對丟包的處理是在應用層來完成的。(or accidental arrival).

          此處需要重點注意的事情是:在正常情況下,當UDP包到達一個關閉的端口時,會返回一個UDP復位包。由于UDP是非面向連接的, 因此沒有任何確認信息來確認包是否正確到達目的地。因此如果你的防火墻丟棄UDP包,它會開放所有的UDP端口(?)。

          由于Internet上正常情況下一些包將被丟棄,甚至某些發往已關閉端口(非防火墻的)的UDP包將不會到達目的,它們將返回一個復位UDP包。

          因為這個原因,UDP端口掃描總是不精確、不可靠的。

          看起來大UDP包的碎片是常見的DOS (Denial of Service)攻擊的常見形式 (這里有個DOS攻擊的例子,http://grc.com/dos/grcdos.htm ).

          ICMP (網間控制消息協議Internet Control Message Protocol)
          如同名字一樣, ICMP用來在主機/路由器之間傳遞控制信息的協議。 ICMP包可以包含診斷信息(ping, traceroute - 注意目前unix系統中的traceroute用UDP包而不是ICMP),錯誤信息(網絡/主機/端口 不可達 network/host/port unreachable), 信息(時間戳timestamp, 地址掩碼address mask request, etc.),或控制信息 (source quench, redirect, etc.) 。

          你可以在http://www.iana.org/assignments/icmp-parameters中找到ICMP包的類型。

          盡管ICMP通常是無害的,還是有些類型的ICMP信息需要丟棄。

          Redirect (5), Alternate Host Address (6), Router Advertisement (9) 能用來轉發通訊。

          Echo (8), Timestamp (13) and Address Mask Request (17) 能用來分別判斷主機是否起來,本地時間 和地址掩碼。注意它們是和返回的信息類別有關的。 它們自己本身是不能被利用的,但它們泄露出的信息對攻擊者是有用的。

          ICMP消息有時也被用來作為DOS攻擊的一部分(例如:洪水ping flood ping,死 ping ?呵呵,有趣 ping of death)?/p>

          包碎片注意A Note About Packet Fragmentation

          如果一個包的大小超過了TCP的最大段長度MSS (Maximum Segment Size) 或MTU (Maximum Transmission Unit),能夠把此包發往目的的唯一方法是把此包分片。由于包分片是正常的,它可以被利用來做惡意的攻擊。

          因為分片的包的第一個分片包含一個包頭,若沒有包分片的重組功能,包過濾器不可能檢測附加的包分片。典型的攻擊Typical attacks involve in overlapping the packet data in which packet header is 典型的攻擊Typical attacks involve in overlapping the packet data in which packet header isnormal until is it overwritten with different destination IP (or port) thereby bypassing firewall rules。包分片能作為 DOS 攻擊的一部分,它可以crash older IP stacks 或漲死CPU連接能力。

          Netfilter/Iptables中的連接跟蹤代碼能自動做分片重組。它仍有弱點,可能受到飽和連接攻擊,可以把CPU資源耗光。

          posted @ 2008-08-07 09:20 Xiaobo Sun 閱讀(9701) | 評論 (4)編輯 收藏

          gdb

          >gdb ./sysprocess
          (gdb)set args -id 0 -taskcfg ub900proc
          (gdb)r //run
          Starting program: ../sysprocess -id 0 -taskcfg ub900proc
          ..
          Program received signal SIGSEGV, Segmentation fault.
          (gdb)backtrace //打印當前的函數調用棧的所有信息。
          (gdb)frame 7 //查看信息,n是一個從0開始的整數,是棧中的層編號
          (gdb)up
          (gdb)down
          (gdb)quit

          posted @ 2008-08-05 15:42 Xiaobo Sun 閱讀(184) | 評論 (0)編輯 收藏

          僅列出標題
          共7頁: 上一頁 1 2 3 4 5 6 7 下一頁 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 衡阳县| 武邑县| 金平| 宾阳县| 泰顺县| 陇西县| 辉南县| 吴川市| 图木舒克市| 汉寿县| 贵定县| 浦县| 色达县| 荆门市| 福州市| 黑山县| 安远县| 历史| 景洪市| 长沙市| 晋中市| 札达县| 巩义市| 芮城县| 绥德县| 新民市| 始兴县| 彩票| 重庆市| 玉龙| 浮梁县| 龙山县| 富顺县| 海原县| 淮南市| 建瓯市| 建宁县| 修武县| 闽侯县| 抚顺市| 原平市|