標籤

Linux (2) 中原宿舍 (2) 網路 (2) CISCO (1) android (1) ubuntu (1) vim (1) windows (1) x10 (1) 冷知識 (1) 網路協議 (1) 網路工程 (1)

2010年10月11日 星期一

組合語言 AT&T Syntax 與 Intel/Microsoft Syntax 差別

order(來源與目標暫存器順序不同)
source在前面destination在後面


Intex Syntax                            AT&T Syntax

instr   dest,source                     instr   source,dest
mov     eax,[ecx]                       movl    (%ecx),%eax
 
 
register naming(暫存器命名)
AT&T前面要加個%
Intel Syntax                            AT&T Syntax

mov     eax,1                           movl    $1,%eax
mov     ebx,0ffh                        movl    $0xff,%ebx
int     80h                             int     $0x80
 
 
imme operand(立即定址命名)
AT&T前面要加個$
 
Intel Syntax                            AT&T Syntax

mov     eax,1                           movl    $1,%eax
mov     ebx,0ffh                        movl    $0xff,%ebx
int     80h                             int     $0x80 
 
 
memory reference(間接定址)
AT&T用小括號"()" 
 
Intel Syntax                           AT&T Syntax

mov     eax,[ebx+20h]                  movl    0x20(%ebx),%eax
add     eax,[ebx+ecx*2h]               addl    (%ebx,%ecx,0x2),%eax
lea     eax,[ebx+ecx]                  leal    (%ebx,%ecx),%eax
 
 
opcode naming(指令命名)
必需指定長度,根據系統而不一樣,word有的是32 bits有的是16 bits
b : byte
w : word
l : long

Intel Syntax                            AT&T Syntax

mov     al,bl                           movb    %bl,%al
mov     ax,bx                           movw    %bx,%ax
mov     eax,ebx                         movl    %ebx,%eax
mov     eax, dword ptr [ebx]            movl    (%ebx),%eax
 
type casting(型別轉換)
s  (signed)
z  (zero)
 
bl (from byte to long) 
bw (from byte to word) 
wl (from word to long)
 
movsbl %al, %edx
 
long jump,call與ret
 
Intel Syntax                            AT&T Syntax

jmp far seg:offsetljmp seg, offset

jmp far  INITSEG:GO                     ljmp $INITSEG, $GO
call far INITSEG:GO                     lcall $INITSEG, $GO
ret far  STACK_ADJUS                    lret $STACK_ADJUST 

註:GAS 亦可接受 Intel/Microsoft syntax 組合語言,只要指令後面寫「.intel_syntax noprefix」即可。

轉自 Study-Area

2010年8月10日 星期二

如何讓 Android ( X10 ) 直接掃描鈴聲

Sony Ericsson X10 有一項缺點就是設定鈴聲比較不方便,一般人不知道的話大概會傻傻的放進 Mediascape 然後設定為鈴聲,而且 Mediascape 不能設定鬧鈴和訊息通知鈴聲,設定最方便的方法就是打開SD卡,把要的鈴聲放在 Audio 底下的資料夾:

一般 Media、Audio 和 notifications 都有預設好,其他沒有的要自己設資料夾,Media 和 Audio 有可能是小寫,Audio 底下的資料的功能分別為:

alarms:放鬧鈴音樂。
notifications:放訊息通知音樂(簡訊、E-mail……等等)。
ringtones:放手機鈴聲。

把音樂放進去,卸載 USB 後,鈴聲選單內就有自己的音樂可以選擇了。

2010年7月18日 星期日

C語言control statement的for和while誰比較快?

C語言程式新手最常問的問題就是control statement的for和while誰比較快?

寫以下兩個無限迴圈程式:

main() {
  for(;;);
} // main()



main() {
  while(1);
} // main()

存檔後,兩個程式透過GCC(註1)翻譯成Assembly Language(註2)後的結果都是下面的結果:

    .file    "infinite.c"
    .text
.globl main
    .type    main, @function
main:
    leal    4(%esp), %ecx
    andl    $-16, %esp
    pushl    -4(%ecx)
    pushl    %ebp
    movl    %esp, %ebp
    pushl    %ecx
.L2:
    jmp    .L2
    .size    main, .-main
    .ident    "GCC: (GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)"
    .section    .note.GNU-stack,"",@progbits

故兩種control statement都一樣快。

註1:不同的compiler轉譯出來的結果可能會不同。

註2:翻譯出來的組合語言是遵守AT&T syntax,跟Intex和Microsoft不太一樣!

2010年7月13日 星期二

宿舍網路問題排除基本步驟

1.先檢查硬體設備是否沒問題
  • 網路線插了但是網路卡燈號沒亮
     → 網路卡或網路線有問題,換別的試試
     → 或者不是拿網路線(8 pin),而是拿錯拿成電話線(6 pin)去接
  • 區域連線是否啟用
     → 如果使用 Windows 7 你可以在控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定
     → 如果使用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容
     ,看看區域連線是否有啟用,若沒有請啟用它,如果已經啟用網路卡,而沒顯示連線

     → 壁孔損壞,請至傳達室填維修單

2.telnet下列校內BBS
   電機心站  140.135.12.1
   中原資工神祕之旅  140.135.11.30
   如果不能上
   → 請檢查IP是否設成手動取得,請換成DHCP自動取得;
如果你是用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容,開啟區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP),請選擇「自動取得IP位址」以及「自動取得 DNS 伺服器位址」

3.連學校首頁 http://www.cycu.edu.tw,如果連不上
   → 請設定DNS
      如果使用 Windows 7 你可以在控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定 → 區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP)
      如果你是用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容,開啟區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP)
      ,請選擇「手動取得 DNS 伺服器位址」
      慣用DNS伺服器:140.135.7.1
      其他DNS伺服器:140.135.7.2

4.連其他的BBS或網頁,如果不能上
  • IE 8設定proxy
     開啟IE → 工具 → 網際網路選項 → 連線(標籤) → 區域網路設定 → Proxy伺服器請打勾「在您的區域網路使用 Proxy 伺服器」以及「進端網址不使用 Proxy」
       網址:proxy.cycu.edu.tw      連接埠:3128
       進入「進階」,請打勾「所有通訊協定使用相同的 Proxy」,會留下 HTTP 一欄
       Proxy位址:proxy.cycu.edu.tw       連接埠:3128
      「例外」欄,下面有「含有下列起始文字的位址不使用 Proxy 伺服器」
    請填入 *.cycu.edu.tw;140.135.*

各種瀏覽器設定Proxy方法以後會詳細介紹!
  • 檢查使用IP跟分配IP是否相同
    → 請到 http://ccdna.cycu.edu.tw,檢查你的使用IP是否和系統
    分配的IP相同
      網頁查詢出來的IP Address是系統分配IP
      如果你是使用 Windows 7 請按 開始 → 搜尋列輸入cmd → 點選cmd
      如果你是使用 Windows 2000/XP  請按 開始 → 執行 → cmd
      如果你是使用 Windows 95/98/ME 請按 開始 → 執行 → command
      進入 MS-DOS 模式
      請輸入「ipconfig」,其中的「IP Address」便是你使用中的IP看看是否一樣
  • 檢查MAC是否正確
     →請到 http://ccdna.cycu.edu.tw,檢查你的網路卡 MAC 是否正確,網頁查詢出來會有「已登錄網路卡 MAC」跟「目前連線網路卡 MAC」 請看看是否一樣,如果不一樣請修改, 必須等待10分鐘左右的處理時間,等待table更新,10分鐘後才能連線。
  • 改成手動取得IP
     → 設定成手動取得IP

        Winodws 7:
        控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定 → 區域連線
        → 內容 → 雙擊Internet Protocol(TCP/IP)

        Windows 2000/XP:
        控制台 → 網路連線 → 區域連線 → 內容 → 雙擊Internet Protocol(TCP/IP)

        請打勾「使用下列IP位址」
        IP位址:系統分配IP (140.135.xxx.xxx)
        子網路遮罩:255.255.255.0(力行)
                    255.255.254.0(恩慈、良善)
        預設閘道:140.135.24.254 (力行一東)
                  140.135.25.254 (力行二東)
                  140.135.26.254 (力行三東)
                  140.135.27.254 (力行四東)
                  140.135.28.254 (力行一西)
                  140.135.29.254 (力行二西)
                  140.135.30.254 (力行三西)
                  140.135.31.254 (力行四西)
                  140.135.151.254(恩慈前棟)
                  140.135.153.254(恩慈後棟)
                  140.135.155.254(良善123樓)
                  140.135.157.254(良善456樓)
                  140.135.159.254(良善789樓)
        慣用DNS伺服器:140.135.7.1
        其他DNS伺服器:140.135.7.2

        系統分配IP請至 http://ccdna.cycu.edu.tw 查詢
  • 是否被阻斷
     → 請至 http://ccdna.cycu.edu.tw/virus_st/index.html
        按 Ctrl+F 輸入自己的系統分配IP查詢是否在清單內   
     → 如果阻斷原因是超過流量上限,則管理系統會自動在08:00刪除

        如果阻斷原因是流量異常,請先看流量異常原因進行調整或解毒

        要清除阻斷,請至 http://ccdna.cycu.edu.tw 自行解除,一天限一次!

以下情況是我們經常遇到的狀況:

開啟不明軟體後,發現到MSN和瀏覽器不能開啟網頁的狀況,防毒軟體也不能更新,請開啟cmd輸入ping + 室友的正常電腦的IP,也嘗試看看從室友的電腦那裡ping回來自己的IP,然後自己的電腦cmd輸入「ping tw.yahoo.com(或者其他網頁地址或IP)」,如果ping出來的結果如圖下顯示的一樣,表示其他網路服務雖然不能使用,但是電腦實際上還是能ping出去(ping只是測試學校網路有沒有問題),代表你的電腦已經徹底中毒,請網管來也沒用,電腦抱回去重灌比較快!

2010年7月12日 星期一

良好的網路使用習慣

在任何環境下,電腦最常發生的事是中毒。電腦中毒後,病毒會不停複製自己,造成CPU(中央處理器)和記憶體超出負荷,讓電腦運作異常,使之變得不穩定、變慢、當機、自動重開機,甚至直接死機(不能開機),病毒嘗試感染其他電腦,也使自己的網路流量增加、速度變慢、甚至不能上網,因此建立良好的網路使用習慣是非常重要的事情。

良好的網路使用習慣大致如下:
  • 不開啟和安裝來路不明的軟體
這個習慣最多人會犯,尤其是遊戲的外掛!最常遇到的就是一開來路不明的外掛後,電腦可以ping出去,也可以ping進來,就是所有網路服務都不能開,這種情況「重灌」是最快的辦法。另外一種狀況就是安裝軟體時有時候會自動附上惡意Toolbar,綁架瀏覽器首頁,就算是良好的Toolbar,也會使瀏覽器效能降低,所以安裝任何軟體,記得照子要放亮,只要一出現安裝Toolbar選項,不管是好是壞,馬上取消就對了,「寧可錯殺一百,不願漏掉萬一。」

注意一下某些軟體會附上「PANDORA.TV」的「Ask」搜尋ToolBar,這種ToolBar裝下去後,除了瀏覽器上會多一個ToolBar以外,也會私自把搜尋預設改成Ask,安裝的時候注意一下!

  • 不開啟來路不明網頁連結和郵件
MSN或即時通上的好友突然間沒事傳一個連結給你,千萬別點下去!點下去後自己也會中木馬程式,除了個人資料被盜取之外,怪客(cracker)(註1)還會利用你的帳號繼續發佈給其他人!電子郵件也是使用同樣的手法感染其他電腦。一般網頁和電子郵件也很常遇到,例如在論壇和信件上常常看到的援交、X片販賣、網路遊戲私服廣告等等,也不要亂點。也有用相似的文字來引人上當,例如yahoo改成yah00、大寫「I」、小寫的「L」和數字「1」,很容易混淆。某些重要資料登入,例如網購和網路銀行,記得認明是「https」(例如:https://login.yahoo.com/*)才能登入。

  • Proxy注意!
有心人士會架設假的Proxy伺服器,擷取網路封包過慮個人資料。通常學校的Proxy伺服器沒有這個風險存在。
  • 小心別人的USB隨身碟或硬碟!
目前最夯的病毒就是USB病毒,專門透過Win XP的自動開啟功能感染其他電腦,所以自動開啟功能一定要關閉!使用前一定要先掃毒!自己的隨身碟插在別人的電腦上後回來也要徹底掃毒一遍!
  • 設定難以猜測的密碼與更改密碼
加密網路相簿最常遇到的就是密碼設的太簡單,很容易猜出來,例如生日、手機號碼......等等,這類密碼非常容易被怪客猜出來,設定難以猜測的密碼極為重要,最怕的就是遇到字典破解,就是用字典的辭彙硬把密碼猜出來,防堵暴力破解的方法,最快的辦法是設定非英文密碼,改設其他歐洲語言的密碼也不錯。有的病毒或木馬會測錄鍵盤紀錄密碼,當發現到中毒時,檔案刪掉並馬上修改密碼,算是亡羊補牢的方法。時常更改密碼更能大幅降低個資盜取的風險。

How Secure Is My Password?」,這個網站能測試你的密碼需要多少時間才能破解,可以參考參考。
  • 不亂留個人資料與隱私管理
這是第二個徹底解決的方法,尤其是在社交網站(Facebook和Twitter),個人資料留的愈多愈危險。如果要留,就要好好保護自己的隱私。
  • 系統更新 
怪客攻擊通常從系統漏洞下手,因此系統修補也是防堵攻擊的不二法門,更新設定成自動就好(雖然Windows修補漏洞的速度非常慢)。
  • 關閉不必要的服務
利用系統服務入侵電腦的狀況也十分常見,停止不需要的服務可以大大降低被入侵的機率,服務越多所造成被入侵的機率越高,像是 Microsoft IIS (網頁伺服器)、FTP、SQL 等都是十分常見的管道,若不需要則將服務停止或移除,以免安裝的服務沒有實際用途卻形成系統的一個弱點而遭到入侵。
  • 瀏覽器
選對的瀏覽器也是一門非常重要的課題,目前漏洞最多的瀏覽器還是IE......這是世界公認的!請改用Firefox、Chrome或Opera,安全性也比IE高很多。有的怪客會利用Flash漏洞透過瀏覽器攻擊系統,Firefox有一個插件叫「Stop Autoplay」,會強制讓Flash停止自動播放,要播放自己點開即可,歡迎到右邊的抓火狐貼紙下載Firefox並安裝Stop Autoplay。
  • Cookie別留下來!
某些需要帳號,甚至是有自動登入的網站和論壇,通常會把帳號紀錄在Cookie裡,甚至是自動登入的網站連密碼也紀錄在裡面,電腦放木馬很容易被盜取,所以瀏覽器設成不存取Cookie也是防止個資盜取的一個好方法,除非有把握不會中木馬(例如使用Linux作業系統)。
  • 防毒軟體
防毒軟體提供即時監測目前系統活動,判斷是否有類似病毒的活動及檔案,如有發現病毒會依軟體的使用者設定設定來執行相關動作,會嘗試清除病毒、刪除檔案等,會在當我們有所疏忽時,協助防止病毒入新,因此安裝是當的防毒軟體也是一種的良好習慣。市面上也有免費、功能又強大的防毒軟體(例:AVG.Ariva.Avast!)可以裝來用一用(註2)

王某史瑞克的風涼話:就算防毒軟體猛到百毒不侵,使用習慣不好,中毒也能搞到連防毒軟體都不能更新,無用武之地。
  • 最徹底解決的辦法:不使用「暈到死」!!!
就是使用非M$的作業系統,例如Linux和Mac OS X,因為世界上99%病毒和木馬都是針對「暈到死」的漏洞而設計的,因此「暈到死」跑的程式不能在其他作業系統上啟動,好比說淡水魚不能在海裡存活的意思一樣,安全性也比「暈到死」好上太多,尤其是Linux,它是開放原始碼的自由軟體,程式碼攤在陽光底下,漏洞比較快找到也很快修補。

註1:利用系統漏洞的人坊間通常都稱為「駭客」,但是在資安界和自由軟體界裡會細分駭客,專門寫開源自由軟體供大眾使用和幫助搜尋並修補系統漏洞的人稱為「駭客」;反之除了搜尋漏洞之外,還利用漏洞攻擊系統的人,就稱為「怪客」。因為自己身處於自由軟體界,只好用「怪客」一詞。 

註2:某些防毒軟體標榜雲端計算或服務,如果網路有限制流量,請不要使用,因為背景掃毒時,軟體會把資料丟到遠端伺服器,會造成流量增加。