10月 17, 2009

GDB 的兩三事

關於 GDB 的使用方法:

(1) 使用 gcc 進行編譯時,記得使用 -g 參數供 gdb 除錯使用。

(2) 可以使用 GDB 針對執行中的程式進行除錯,也就是 Runtime 一半時進行除錯動作:
gdb [options] [executable-file [core-file or process-id]]
(3) 如果執行檔需要「引數」才能運作,使用 --args 這個命令可以達成目的:
gdb [options] --args executable-file [arguments ...]

原本執行方式:./client -p 23
除錯執行方式:gdb --args ./client -p 23

10月 16, 2009

VirtualBox 中橋接兩張網卡

實驗需要兩個 Linux 作業系統,可以互相連線,並能存取網際網路(Internet)。由於所處環境具有 DHCP 服務,原本想法是希望 VirtualBox 內的 Network Adapte 能藉由 DHCP 取得網路位址供內部使用,大概像這樣:
OS1 ---+
+--Network Adapter #1--DHCP--[IP 分享器]
OS2 ---+

或者像是

OS1 - Network Adapter #1--DHCP--[IP 分享器]
OS2 - Network Adapter #2--DHCP--[IP 分享器]
都沒能成功,所只好更改網路架構:
OS1 - Network Adapter #1 --+
+--[Bridge]--DHCP--[IP 分享器]
OS2 - Network Adapter #2 --+
設定步驟:
(1) 在 VirtualBox 中額外新增一個網路裝置,並分別配給兩個作業系統。
(2) 在 Windows 設定中將兩張網卡橋接起來。

接在 Bridge 上的裝置,對內可以相互連線,對外則共用一個 IP。

10月 15, 2009

sources list

Debian Linux 5.0 Lenny 套件庫:
# Packages
deb http://debian.linux.org.tw/debian/ lenny main contrib non-free
deb-src http://debian.linux.org.tw/debian/ lenny main contrib non-free

# Security Update
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
Debian 安裝時,可以先取消網路功能,讓安裝過程較為順利。等候 Base System 建置完成再行升級。

個人常用的套件:
# apt-get install sudo yafc lighttpd vsftpd tree \
dnsutils telnet mutt build-essential mc vim less \
screen postfix unrar

10月 11, 2009

透過 proxy 連接 APT 伺服器

如果所在環境需要透過 proxy 才能存取到網路,可以在 /etc/apt/apt.conf 加入下面設定:
Acquire::http::Proxy "http://user:pass@proxy:port/";

10月 09, 2009

TCP Zero Window Size Vulnerability



Keyword:Zero Window Probes, Persist condition

在正常的 TCP 連線狀態下,每當接收端成功收到封包時,會回應 ACK 給發送端。該 ACK 資訊除了告知發送端,封包成功送達外,另一個作用是讓發送端知道,目前的 Receive Window Size 是多少,以便達到 Flow control 的效用。藉由這樣的資訊,可以避免發送端一次送出過量資料。

TCP Robustness in Persist Condition 這份文件,提到的系統弱點則是利用 TCP 協定的設計缺失達成攻擊目的。其主要方式如下:

一個具有惡意的接收者,向發送端提出需求,在連線建立後隨即送出ACK(window size=0) 的訊息,這表示接收端暫時無法接收資訊。發送端收到該 ACK 後便會進入 Persist condition,在這狀況下發送端會為接收端保存這份資料(in sending queue),並等到接收端重新開啟 Receive window 後再將資料送出。

在 Persist condition 狀況下,發送端定期去 probe 接收端狀態。但惡意的接收端每次都回應 ACK(window size=0) 讓傳送端遲遲無法送出資料。然而發送端服務的對象往往不止一個,上述的惡意行為如果大量出現將會耗用大量資源,造成發送端無法提供正常服務。

相關連結參考:
微軟 MS09-048 安全通報
TCP Robustness in Persist Condition

10月 06, 2009

IGMP snooping

允許 L2 switch 去偷聽(listen in)主機與路由器之間的 IGMP 溝通,當 switch 收到主機發出的 IGMP report 時,會將該主機的連接 port 記錄下來。當主機發出 IGMP leave 訊息時

10月 03, 2009

程式撰寫專用字型(Monaco)

寫程式時還在東選西選,找不到適當的字型嗎?!試試 Monaco 這套字型吧。跟任何 editor 搭配起來都很楚,表現的效果就像這樣;在 shell 下的表現則是如此。另一套 Consolas 風格也很像(感覺就是一樣)。

下載網址:

10月 02, 2009

HP dx2390 套裝電腦

星期二從一樓把電腦扛回來後,再也沒動過。直到今天才有空拆開紙箱。公司配的型號是 HP Compaq dx2390 套裝電腦,跟以前學校用的 Dell 很像。規格請參考