1. 程式人生 > >CTF入門指南1(Capture the flag)

CTF入門指南1(Capture the flag)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                       

英文教程:https://trailofbits.github.io/ctf/intro/careers.html

1、逆向工程

建議你得到一個IDA Pro的副本,這有免費版和學生認證書。嘗試下crack me的問題。寫出你的C語言程式碼,然後進行反編譯。重複這個過程,同時更改編譯器的選項和程式邏輯。在編譯的二進位制檔案中“if”宣告和“select”語句有什麼不同?我建議你專注於一個單一的原始架構:x86、x86_64或是ARM。在處理器手冊中查詢你要找的,參考有:

《Practical Reverse Engineering》
《Reversing: Secrets of Reverse Engineering》
《The IDA Pro Book》

2、加密。

雖然這不是我自己的強項,但這裡有一些參考還是要看看的:

《Applied Cryptography》
《Practical Cryptography》
Cryptography I

3、ACM程式設計

選擇一個高層次的語言,我推薦使用Python或Ruby。對於Python而言,閱讀下《Dive into Python》和找一些你要加入的專案。值得一提的是Metasploit是用Ruby編寫的。關於演算法和資料結構的電腦科學課也要在此類中要走很長的路。看看來自CTF和其他程式設計的挑戰,戰勝他們。專注於建立一個解決方法而不是最快或是最好的方法,特別是在你剛剛開始的時候。

4、web漏洞

有很多的網路程式設計技術,在CTF中最流行的就是PHP和SQL。php.net網站(譯者注:需翻牆)是一個夢幻的語言參考,只要搜尋你好奇的功能。PHP之後,看到網頁上存在的挑戰的最常見的方法就是使用Python或Ruby指令碼。主要到技術有重疊,這有一本關於網路安全漏洞的好書,是《黑客攻防技術寶典:Web實戰篇》。除此之外,在學習了一些基本技術之後,你可能也想通過比較流行的免費軟體工具來取得一些經驗。這些在CTF競爭中也可能會偶爾用到,這些加密會和你憑經驗得到的加密重疊。

5、二進位制練習

建議你在進入二進位制練習前要完成逆向工程的學習。這有幾個你可以獨立學習的常見型別漏洞:棧溢位,堆溢位,對於初學者的格式字串漏洞。很多是通過練習思維來辨別漏洞的型別。學習以往的漏洞是進入二進位制門檻的最好途徑。推薦你可以閱讀:

《黑客:漏洞發掘的藝術》
《黑客攻防技術寶典:系統實戰篇》
《The Art of Software Security Assessment》

6、取證/網路

大多數的CTF團隊往往有“一個”負責取證的人。我不是那種人,但是我建議你學習如何使用010 hex editor,不要怕做出荒謬、瘋狂、隨機的猜測這些問題執行的結果是怎樣。

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述