2016年6月5日 星期日

Happy hacking!

大家好,感謝每個來信的朋友,也再次抱歉每次回信都拖超久⋯
因為某些因素,緩衝區溢位的第三章到第六章將會離線,如對其內容有興趣的朋友仍可翻閱實體書參考,謝謝大家的支持:)

目錄在

Happy hacking!

2015年9月20日 星期日

2015年8月9日 星期日

Insertion Sort

Insertion Sort 的作法應該是一般人直覺最容易想到的排序方法,像是給你一副亂掉的撲克牌要你從小排到大,先假設只有一種花色,例如說梅花好了。一般人可能會直接想到把牌理好展開(不管是在手上或在桌上),然後先找梅花 A,把它放在最左邊(或者獨立出來一排),然後再找梅花二,放在梅花 A 的旁邊,再找梅花三,放在梅花二旁邊,依此類推,從小到大去找牌,並且往左邊放。

舉例,假設一開始亂掉的十三張梅花牌,理好展開長這樣:
Q 9 K 5 3 A 8 2 6 4 7 10 J

第一個先找 A,放到最左邊:
Q 9 K 5 3 A 8 2 6 4 7 10 J
=>
A Q 9 K 5 3 8 2 6 4 7 10 J

然後找 2,放到 A 的旁邊,因為 A 已經固定了,所以我們眼光只要從 Q 以後開始去掃描就好:
A Q 9 K 5 3 8 2 6 4 7 10 J
  ^從這裡以後往右去找
=>
A 2 Q 9 K 5 3 8 6 4 7 10 J
^^^從頭到這裡已經排好了

再來是 3,因為 A 和 2 固定了,所以只要從 Q 開始掃描:
A 2 Q 9 K 5 3 8 6 4 7 10 J
    ^從這裡以後往右去找
=>
A 2 3 Q 9 K 5 8 6 4 7 10 J
^^^^^從頭到這裡已經排好了,排好的部份越來越多了!

依此類推。

另一種 Insertion Sort 的想法也是大家直覺上容易想到的作法,先把亂掉的十三張梅花理好展開,從第二張牌開始去和第一張比較,把兩張牌按順序排好,再來考慮第三張牌,去和前面兩張牌比較,將其插入在對應的位置,再來考慮第四張牌,去和前面三張牌比較,插入在對應的位置。舉例如下:

2015年2月7日 星期六

Windows 軟體安全實務 - 緩衝區溢位攻擊

目錄

2015年2月6日 星期五

Windows 軟體安全實務 - 緩衝區溢位攻擊:後記

全書目錄在

這本書從動筆到如今已經三年多了,其實真的寫作時間大概三個月,只是中間有一些波折,以至於延到如今才完成。

有幾件有趣的事情在這三年多的時間內發生了。

第一件是國際上發生了幾起針對 DNS 的大規模攻擊事件,就如同本書前言中所預測的。

第二件是微軟大約兩年一個週期推出新的作業系統,所以本書也將後來的 Windows 8 和 Windows 10 (Technical Preview) 當作範例加進來。

第三件是緩衝區溢位的攻擊越來越少見,雖然發生的時候都是極大的影響力,例如 OpenSSL 的 Heartbleed 事件,或是 Adobe flash player 的漏洞。扣除掉複合式 APT 攻擊以外,現今以針對網頁軟體的攻擊為大宗,例如 OWASP 統計 Injection 已經是連續蟬聯近兩年的第一名。未來應該也是繼續這樣的趨勢。
 
在本書前言一開始設定讀者有兩個條件,一是對網安有興趣,二是學過基本的程式設計。雖然閱讀本書沒有很高的技術門檻,但是並不代表本書的內容淺顯易懂。事實上本書的內容相當艱澀,畢竟,要將書中的主題解釋清楚,真的不是一件容易的事。

如果您已經熟稔緩衝區溢位相關技術,即使本書對您來說可能太過簡單,還是期待您能在其中發現一些新想法。如果您是剛踏入這個領域,抱持著興趣與熱情,筆者期待這本書對您的幫助,是遠超過目前網路或坊間所有雜亂資料的。

筆者雖然花費許多心血與時間撰寫,盡可能確保內容與範例的正確無誤,但是難免有出錯的可能,還請讀者們不吝指教。可以寄信給我,或者直接在本站留言。

最後,也最重要的是,感謝我的家人,有他們的支持才會有這本書。特別要感謝我的太太。

fon909 (at) outlook.com
民國 104 年 2 月 6 日

緩衝區溢位攻擊:第六章 - 攻守之戰

本章將介紹一些在 Windows 系統上普遍的防護機制,主要由編譯器、連結器、或者是作業系統本身來提供。也將介紹攻擊者對應的突破技巧。
攻守往來,戰事即將開始。

2015年1月3日 星期六

Wireshark 無 root 權限執行

Wireshark 預設如果沒有 root 權限,會抓不到網路界面。其實這是一個可以很容易解決的問題,按照 wireshark 官網上的一個問答就可以解決了。

簡單來說,執行以下:
$ sudo apt-get install wireshark
$ sudo dpkg-reconfigure wireshark-common 
$ sudo usermod -a -G wireshark $USER
$ sudo reboot

其中 dpkg-reconfigure 那一步選擇 yes,如果願意的話,可以花點時間讀一下它告訴你的,基本上 wireshark 的安裝文件裡面也有寫。

reboot 那一步當然也可以用圖形界面來操作,如果不願意 reboot 其實也有別的方法,但是我發現最單純的步驟最不會出錯。