Pages

2014年4月3日 星期四

ANDSF

ANDSF 全名為 Access Network Discovery and Selection Function,位於 EPC 系統中。可以幫UE 在 3GPP 與 non 3GPP(WiMax,Wi-Fi) 的網路 找出最好的連線品質,進行連線。也可以訂定不同的策略依照不同需求,進行offload動作。
這次要做的計畫內容,就是要針對UE做offload。
ANDSF主要架構如下:
  

  ANDSF 與 UE溝通的介面為S14 其大致的架構如下:

 

ISMP - 當UE在同一個時間只能連上一種網路(LAN or Cellular 網路)時,ANDSF會根據哪個網路負載量較少,而建議UE連上此網路
ISRP - 當UE在同一個時間可以連上多種網路(LAN or Cellular 網路)時,ANDSF 會根據不同應用程式的應用走不同路線
IARP - 可以根據所接受到的 IARP 路由策略以及 UE 的偏好設定來為某限定的IP flow選擇路由路徑, 該路由路徑必須是現有的active IP interface並且連結到一個指定的APN(3G和網際網路之間的gateway)
Discovery information - 找尋UE附近可以連上網路的訊息
Rule Selection Information - 當UE在做roaming 的時候和收到從HPLMN與VPLMN的ANDSF規則,如何選擇active 的 ISMP,ISRP,WLANSP
WLANSP - 要選擇哪個最適合UE的WLAN
Home Operator Preference information - 讓UE建立PDN的連線而不透過WLAN連上網路


IARP應該是計畫中比較要用到的元件。
在此詳細介紹一下IARP的細節元件:




在IARP中可以設定多個Rules,但一次只能用一個Rule,為'Active' IARP Rule。 此外當UE在Roaming時,ANDSF不會提供IARP給UE。
AddressType - IPv4 或 IPv6
StartSourceIP - IPflow 的 IP addresses 範圍第一個 IP address
EndSourceIP - IPflow 的 IP addresses 範圍最後一個 IP address
ProtocolType - IPv4 header 的 Protocol , IPv6 header 的 Next header
StartSourcePortNumber - IPflow 的 PortNumbers 範圍第一個 PortNumber
EndSourcePortNumber - IPflow 的 PortNumbers 範圍最後一個 PortNumber
Qos - 設定Qos 參數
DomainName - 目的地的網址
APN - APN的名稱 , 有<APN>的格式
Update Policy - UE 是否要更新IARP rule



ANDSF 與UE傳遞的格式為 XML ,所以現在要研究 Android 要如何 讀取 XML格式


參考自 3GPP TS24.312( R12), TS23.402( R12)

2013年12月2日 星期一

需要格式化磁碟機才能使用

最近外接硬碟莫名其妙在開啟時一直出現 「 需要格式化磁碟機才能使用 」 但是又不想真的格式化,不然裡面的檔案就找不回來了。
此時只好求助Google 幫忙了,底下就是解決方法:

 對命令提示字元按右鍵,選擇「以系統管理員身分執行」,之後輸入指令:
 chkdsk e: /f
 e 就是你的外接式硬碟的代號,你可以換成你自己的硬碟編號。

2013年10月1日 星期二

wifite + reaver 破解無線網路AP密碼

剛開始光使用reaver 的程式,無法順利破解無線網路AP的密碼,所以後來找到一個wifite的程式,這個程式本來是用來破解WEP,這裡利用結合wifite 和 reaver的程式 , 順利破解無線網路AP密碼
安裝Reaver 套件
$ sudo apt-get install libpcap-dev libsqlite3-dev
$ wget https://reaver-wps.googlecode.com/files/reaver-1.4.tar.gz
$ tar zxf reaver-*.tar.gz
$ cd reaver-*/src
$ ./configure
$ make
$ sudo make install

安裝aircrack 可以監聽附近無線網路的封包
$ sudo add-apt-repository ppa:aking1012-com/aircrack-precise
$ sudo apt-update
$ sudo apt-get install aircrack-ng

安裝並執行Wifite
$ wget https://wifite.googlecode.com/files/wifite-2.0r85.tar.gz
$ tar zxf wifite-*.tar.gz
$ sudo ./wifite.py

起始畫面:

此時就會開啟一個mon0介面開始監聽附近的無線網路來源
列出附近的無線網路

按下ctrl + c 就停止搜尋 並且 選擇你所要破解的無線AP的列表號碼
開始破解 (花了4HR的時間)


我設定我破解的ap是WPA2-personal 的加密協定, 下次再試看看其他的加密協定. 目前市面上蠻多都是WPA2的AP,真是危險!!





參考來源: 網站連結

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範例
 
 
Blogger Templates