Social Icons

twitterfacebookgoogle plusrss feedemail

3/31/2013

Address Resolution Protocol (ARP) 介紹

沒有留言:
最近在寫ARP 攻擊與防禦的程式,在開始之前要先了解一下什麼是ARP!了解後我們就可以撰寫程式攻擊或者針對ARP攻擊做防禦。

ARP(Address Resolution Protocol),ARP的基本功能就是通過目標設備的IP位址,查詢目標設備的MAC地址,以保證通信的順利進行。IPv6中已不再適用,並被ICMPv6取代。
在每台安裝有TCP/IP協議的電腦或路由器裡都有一個ARP緩存表,表裡的IP位址與MAC地址是一對應的,如下表所示。
主機名稱IP位址MAC地址
A192.168.38.1000-AA-00-62-D2-02
B192.168.38.1100-BB-00-62-C2-02
C192.168.38.1200-CC-00-62-C2-02
D192.168.38.1300-DD-00-62-C2-02
E192.168.38.1400-EE-00-62-C2-02
.........
以主機A(192.168.38.10)向主機B(192.168.38.11)發送數據為例。
當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目標IP位址。如果找到了,也就知道了目標MAC地址為(00-BB-00-62-C2-02),直接把目標MAC地址寫入幀裡面發送就可以了;如果在ARP緩存表中沒有找到相對應的IP位址,主機A就會在網路上發送一個廣播(ARP request),目標MAC地址是「FF.FF.FF.FF.FF.FF」,這表示向同一網段內的所有主機發出這樣的詢 問:「192.168.38.11的MAC地址是什麼?」網路上其他主機並不響應ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應(ARP response):「192.168.38.11的MAC地址是(00-BB-00-62-C2-02)」。 這樣,主機A就知道了主機B的MAC地址,它就可以向主機B發送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發送信息時,直接從ARP緩存表裡查找就可以了。

3/30/2013

老鼠走迷宮-簡易版

沒有留言:
由於前幾個老鼠走迷宮版本可能對有些人來說可能比較難,所以這邊提供幾個最基本的版本~
不要看到下面一大堆程式碼就嚇到了...我只是把它放在一起而已~~

在提供版本之前先來講解一下老鼠怎麼走迷宮
所有的遊戲地圖基本上都是由矩陣所構成,而矩陣中美一個元素可能代表著不同的意思,下圖試一個迷宮的矩陣,我們可以看到裡面有許多的數字:
其中4表示外牆、3表示內牆、1表示起點、2表示終點而0表示可以走的通道!

當然我們一般在玩遊戲時根本不知道原來地圖是長這樣的,因為這些數字對於玩家來說只會眼花撩亂而已,當電腦只要知道這些數字,再將這些數字利用不同的圖片或者符號印出時,就可以得到我們平常玩遊戲時的場景,比如說下面這張圖:

點圖可放大
這張圖片我只是將剛剛第一張圖片不能走的區域弄成黑色,在經由程式印出,這樣就可以畫出遊戲的迷宮了!!這樣大家有沒有比較有概念了?

老鼠走迷宮-easyx版本

沒有留言:

最近資料結構已經邁入第三個作業了,所以在這邊我也把之前做的東西跟一些參考資料給放上來~
本篇這個版本是使用easyx這套繪圖引擎來幫忙製作的,這套繪圖引擎我很推薦大家使用,主要是因為使用上簡單,而且很適合教學!
程式碼的部分感覺起來好像很長,但其實還好有問題在留言即可~我想程式碼應該很好理解!在這邊說明一下這個程式碼是論壇中某位大大寫的,我再稍微修改一下裡面的內容~

ubuntu 安裝JDK

沒有留言:
ubuntu下如果想要開發android APP、JAVA程式...就必須得安裝JDK,如果只是單純想執行只要安裝JRE即可! 以下就稍微簡單的介紹怎麼安裝JDK

1.下載JDK
請先至 官網 ,選擇自己的linux版本32位元請裝x86  , 64 位元請裝x64下載!

2.創建資料夾,並且將剛剛下載的檔案解壓縮,這邊可以使用以下指令
#sudo mkdir /usr/lib/jvm
#sudo tar -C /usr/lib/jvm -xzf jdk-7u11-linux-x64.tar.gz
     "jdk-7u11-linux-x64.tar.gz" 請改為自己檔案名稱
     可以檢查一下jvm資料夾下使否有jdk1.7的資料夾
 $ls /usr/lib/jvm
3.查看
是否電腦之前已經有安裝過java
$ java -version
The program 'java' can be found in the following packages:
 * default-jre
 * gcj-4.6-jre-headless
 * openjdk-6-jre-headless
 * gcj-4.5-jre-headless
 * openjdk-7-jre-headless
Try: sudo apt-get install <selected package>

     如果出現以上訊息表示java還沒安裝

Ubuntu 使用Eclipse 編譯C/C++程式

沒有留言:
本篇將稍微介紹如何在ubuntu中安裝eclipse 與eclipse CDT來幫助我們開發C程式
步驟如下
1.電腦必須安裝Java Development Kit(JDK) 或者JRE,因為eclipse必須在JAVA環境中執行
2.下載eclipse CDT
直接到eclipse 官網中下載即可
官網:http://www.eclipse.org/cdt/
下載: JUNO版 

3.下載完後解壓縮,接著執行eclipse

4.創建專案>編譯>執行,即可。

整體操作請查看影片,因為最近比較忙所以影片沒有聲音,之後有空會補上