Pages

2013年9月2日 星期一

使用 wireshark in Ubuntu

啟動無線網卡至監聽模式(monitor) 要先安裝一個虛擬的無線界面 :mon0
安裝指令:
sudo apt-get install aircrack-ng

啟動指令:
sudo airmong-ng start wlan0

在sudo 下 啟動 wireshark 在capture 下的 interface 就會新增一個mon0的虛擬界面
這次我要取得特定的client 端的封包 , 所以我先取得client端的MAC address 在專門取得他所發送的封包即可.
在wireshark 的工具列 capture -> 勾選所要監聽的device(我選mon0) -> options(我要過濾一些封包)-> 點選選定的device 兩下 -> 勾選 capture packets in monitor mode -> 點選capture filter ->ethernet address -> 在filter string 的 eher host 之後改成我要抓的mac address -> 按下確定->start
即可開始監聽!!!

2013年8月14日 星期三

Android JPBC Benchmark Project

終於找到官方給的JPBC-Benchmark.APK檔案的project 的code : 連結
要抓tags那個資料夾的project code 才會正確,另一個跑過有錯.

最主要的關鍵就是這個project沒有夾帶JPBC 的library 也就是jar檔 所以要再抓 jpbc_1_2_1
分別把jpbc-1.2.1裡的jars資料夾裡的jar依序匯入Android libs 資料夾中
project右鍵 -> build Path -> configure build Path->Add JARs
選取自己project 的 libs 資料夾中剛剛所匯入的jar 即可!!

匯入jar 到 Android project 遇到的問題

這次遇到的問題, 找了好久 才知道是Eclipse 的設定搞的鬼
我遇到的問題是:

The library 'XXXX.jar' contains native libraries that will not run on the device
XXX.jar 是我無法順利載入的jar檔案 解決方法: 在Eclipse 的 window->Preferences->Android->Build->
"Force error when external jars contain native libraries"
"Automatically refresh Resources and Assets folder on build"
取消這兩個選項

2013年8月13日 星期二

在Android 使用 base64 的 class

這次要在Android 上跑一個AES的範例,出現一些問題
在Android 上無法使用
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
解決辦法是要import 不同的函式
首先 先下載:apache.commons的元件
我抓的版本為 :commons-codec-1.8-bin.zip (反正抓最新版就好)
在以下路徑 匯入函式庫:
project > Build Path > Add External Archives >
匯入commons-codec-1.8.jar
接著就改成import下面的函式
import org.apache.commons.codec.binary.Base64;

加密的寫法:
String outputString = new String(Base64.encodeBase64(inputString.getBytes()));

解密的寫法:
byte[] data = Base64.decodeBase64(msg.getBytes());
byte[] result = getCipher(CryptMode.DECODE).doFinal(data);
參考: base64 AES範例

2013年7月19日 星期五

如何在blog顯示code碼


  1. 在範本中修改html檔,在<header>中插入以下程式碼:
  2. <link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" rel="stylesheet" type="text/css"></link>
    <script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" type="text/javascript">
    </script>
    
  3. 在範本中修改html檔,在<body>中加入
  4. onload='prettyPrint();' 
    
  5. 在範本中修改html檔中收尋 /* Post 並加入以下CSS的修改檔
  6. .post .code { 
      display: block; /* fixes a strange ie margin bug */
      font-family: Courier New; 
      font-size: 10pt; 
      overflow:auto; 
      background: #f0f0f0 url(http://yourweb_images_home/Code_BG.gif) left top repeat-y;
      border: 1px solid #ccc;
      padding: 10px 10px 10px 21px;
      max-height:200px;
      line-height: 1.2em;
    }
    
  7. 在文章的HTML檔在想顯示程式碼中加入以下標籤
  8. <pre class="prettyprint code">
    你的code碼
    </pre>
    
參考自:文章
不錯的參考資料:HTML Encode 網頁

Packet size 過大

在新增自己的Agent時,想自訂自己的packet 格式
首先要在test.h檔中

struct hdr_test{
 int type;//要加一個變數在這,不要去用到它,這樣packet header 的指標才不會出錯
 
 double send_time;
 char state;
 
 int size_;
        int& size() { return size_; }

 static int offset_;
 inline static int&offset(){return offset_;}
 inline static hdr_test* access(const Packet* p){
  return (hdr_test*)p->access(offset_);
 }
};
當初卡這裡卡超久, 這樣就就可以好好利用自己的packet了

2013年5月2日 星期四

網路上常見的delay time


1.propagation delay:在網路線上傳輸所花費的時間,與網路線上電子訊號跑的速度有關。

2.transmission delay:網路卡將資料傳送(或接收)資料到網路線上所花的時間,與網路卡的傳送速度有關(如高速乙太網路傳送速度100Mbps)
   transmission delay =   L(packet length)/R (transmission rate)

3.processing delay:路由器處理Header與找路徑等所花費的時間。

4.queuing delay:在路由器上因為某些因素無法立刻將傳送封包到網路上造成封包停留在buffer上所花費的時間。
*traffic intensity = L(packet length)a(average packet arrival rate)/R(link bandwidth<bps>) 趨近於1


在網路上propagation delay、transmission delay與processing delay都可根據相關參數(如封包大小、網路卡傳送速度等)計算所需時間,只有queuing delay必須根據網路當時情形才能獲知所需時間,因此queuing delay的變動性最大

protocol data unit


參考自:PDF
 
 
Blogger Templates