iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1
Security

打通任督二脈奇幻之旅 - 用 30 天探索 Windows 底層運作原理系列 第 1

【Day 01】- 孤燈蓑冠衣,獨究程式碼:前言與大綱

Agenda

  • 資安宣言
  • 自我介紹與參賽動機
  • 適合閱讀本系列文章的對象
  • 本系列文章大綱
  • 目標與展望
  • 好文、好書、好課程推推
  • 下期預告

資安宣言


撰寫本系列文章目的在於提升資訊安全之實務能力,
並透過實作體悟到資訊安全領域的重要性,
本系列所有文章之內容皆有一定技術水平,
不得從事非法行為、惡意攻擊等非法活動,
「一切不合法規之行為皆受法律所約束」,
為了避免造成公司、廠商或玩家之間困擾,
所有實作不會拿已上市產品、Online Game 等等來作範例學習,
且部分具有深度、價值之內容,將會提升一定閱讀門檻(不對該技術做分析、解說),
請勿透過本系列文章所學,從事任何非法活動,請不要以身試法!!!


自我介紹與參賽動機

自我介紹

大家好~ 現在到了自我介紹的時間啦~ ≧ ﹏ ≦
首先呢,我目前 (2021) 還是個學生,就讀大學三年級,
以前都在鑽研遊戲外掛技術(Ring3),後來跑去打 CTF 打了一陣子,
於是開始往「資訊安全領域」發展,現在則是對 Windows 安全領域極感興趣。

沒什麼部落格,也沒什麼聯絡資訊,我都是在螢幕後默默地學習,就這樣,以上!?

(以下是我自己的故事,可以略ㄛ。)

那為什麼會對 Windows 安全領域極感興趣呢?

是這樣的,以前在鑽研「反」反外掛技術時,只是想在遊戲中獲得更大的樂趣,
而且當時感到最大的樂趣是:被遊戲中的玩家罵!!!
罵得越激烈越難聽我越爽XDDD,尤其是我在想辦法除掉「隊友」時獲得的反應,
所以當時只是因為想在遊戲內獲得更多的樂趣而已,
當下並沒有什麼「安全」的概念。

事情一直來到我開始接觸 CTF,參加了一些 Training,
開始建立起「安全」的概念,對「安全」開始有所認識,
並且在一次非常非常偶然的機會中,遇見了一位高人(高手大大)的指點、指導,
為什麼我會說非常非常偶然呢?因為我是幾乎不會出現在實體活動會場的,
而那天我去了某個活動現場,更離奇的是,我通常會「拒絕有效社交」,
但是因為發生了不可抗拒之因素(有外力介入我就不說了),
迫使我開始與會眾交流,於是我遇見了一位高人(高手大大),
就這樣開始了 Windows 底層世界 Kernel(Ring0)、VT(Ring-1)之旅。

到這裡你以為結束了嗎?
答案是:還沒!因為我想到另一則故事,想要再補充一下。

我剛開始接觸 CTF 的時候是高二,
距離我鑽研「反」反外掛技術已經過去了一段時間(國中時期),
高二時對 CTF 有著滿腔的熱血,我就是要學資安,我就是要打 CTF,
所以我積極參與某些 Training,暑假的、寒假的、假日的我都出現,
但是問題來了,我們學校不管是暑假、寒假又或者是假日(六),
都要到校上課,所以我請假的次數似乎比別人來的多。

有一次好幾天連續的 Training 結束了,回到學校時發生了一件我一輩子都不會忘的事,
因我請假參加 Training 這件事,使某位不認同「學資安有未來」的任課老師生氣,
當下我就意識到,資安還真的很多人不懂,還需要更多的推廣,
然後繼續參加各種 Training,我的夢想誰都無法阻止XD。

說這則故事是想表達請務必尊重做資訊安全領域的專業人員,
我不敢說我自己是,但我認為各行業都應該互相尊重,不管懂或不懂,
我也沒有因為參加 Training 影響了該科目成績,這件事令我十分難忘。

好了,最後你/妳可能會問我:
那我為什麼高中接觸 CTF 時都會出現在 Training 的活動會場,
後面又說「幾乎不會出現在實體活動會場」呢?
答:這又是另一則長篇故事了,有機會再和大家分享了,哈!

參賽動機

為什麼會想要參加這次鐵人賽呢?

  1. 第一個當然就是感覺很有趣想參加看看!
  2. 第二個當然就是想藉由這次鐵人賽,一日一篇技術文,強化自己的技術能力囉!
  3. 第三個當然就是想知道目前自己可以寫到什麼樣的程度,順便當筆記記錄下來囉!
  4. 第四個當然就是想和大家交流交流,獲得更多新奇知識!

最後一定要說的:
小弟我目前還屬於菜鳥階段,正不斷努力學習中,
若有發現錯誤或不妥之處還請不吝賜教。
歡迎大家多多留言,互相交流交流。

適合閱讀本系列文章的對象

  1. 對 Windows 感興趣者
    • 不喜歡或沒再使用 Windows?
    • ...我不知道這麼問題如何解決,抱歉XD
  2. 樂於從事安全研究者
    • 喜歡枯燥乏味、耗時、燒腦的研究非常適合閱讀本系列文章
  3. 具備一定邏輯推理、演算能力
    • 推薦多寫程式、玩數獨、益智類遊戲 APP、嘴砲等等 (?
  4. 具備基礎程式設計能力 : C/C++
  5. 具備基礎閱讀組合語言能力
  6. 具備基本驅動相關知識與編寫能力

本系列文章大綱

正如標題所說:孤燈蓑冠衣,獨究程式碼,
意思是說這個系列所涉及的領域,我個人認為是非常孤獨、寂寥的,
完整的解釋就是:
在夜深無人時,只有我們開著一盞燈,
披着簡陋的衣服、戴著帽子,
獨自一人在寒冷的房間中研究著枯燥乏味的底層技術。

雖然說是孤獨、寂寥的,但玩出興趣還是最重要的。

這個系列會取網路上已公開的或熱門的 Project 來講解其技術、實作原理,
若有感興趣的也可以留言,時間允許且可以公開分享的,我也許會更新在 Day31 後?。
當然有些內容會是我自己想到然後寫出來的,也不完全是網路上的 Project 拉~
詳細可以看文章的內容,我會告知的~

另外這次的系列文章中,我自己所撰寫的所有 Source Code 都不會給完整的 Project,
期待拿到我完整 Project 的人可以不用想了XD,我是不會給的,
我大概只會提供幾個關鍵 Code,有能力的人就可以自己寫囉!
不過你應該還是可以在網路上找到相關的範例 CODE?

這都是我設置門檻的一部分,所以不要因為拿不到完整 Project 難過辣~
全是為了避免有那種想做壞事的人,
或是完全不懂自己在做什麼的人拿去亂玩,造成世界大亂!?
再來就是自己做出來會比較有成就感,也比較有實際的價值。

那這個系列會分為兩個階段:

  1. 第一階段是 Day02 - Day15,會講一些比較常見的、較容易學習的內容。
  2. 第二階段是 Day16 - Day29,會講一些比較有趣的、較不易學習的內容。

好了以下是 Day01 - Day15 的 Outline (可能還會調整吧~)

【Day 01】- 孤燈蓑冠衣,獨究程式碼:前言與大綱
【Day 02】- 消失在系統上的目錄與文件
【Day 03】- 打針!打針!從 R0 注入的那件事!
【Day 04】- 今日來把 Module 藏起來
【Day 05】- 藏起來的 Module 還是被發現了 QuO
【Day 06】- Module隱藏大法,不可能再被發現了吧/ _ \
【Day 07】- 惡搞行程(Process)、鍵盤(Keyboard)大作戰之序章
【Day 08】- 見鬼了(っ °Д °;)っ我明明沒有啟動這支程式...
【Day 09】- 今日來創造 Ghost Process
【Day 10】- 藏起來的 Process 真的看不見摸不著?
【Day 11】- 再次創造 Ghost Process,這次找不到了吧哈哈
【Day 12】- 找出看不見也摸不著的 Process,終極辦法!
【Day 13】- 有了這個,就沒有打得開的程式了 XD
【Day 14】- 今天來實作一個鍵盤監聽器
【Day 15】- 今天來實作一個 Kernel mode Thread
【Day 16】- 今天來實作一個系統時鐘加速器

( Day15 才會公布 Day16 - Day30 的 Outline,同時會在更新這篇文章)

目標與展望

這篇文章似乎有點長了,我可能就...長話短說了

最後學習完這個系列後可以獲得什麼呢?(目標與展望)

  1. 會在自己心中種下小小的資安樹種子,讓資安樹越來越繁茂!
  2. 待資安樹開花結果之時,可將其種子授予他人!
  3. 可以當一個小小的資安擺渡人呀!
  4. 對底層運作原理有更深入的理解,可以自己做/寫出實用的工具!

好文、好書、好課程推推

好文推推!!!

好書推推!!!~~

好課程推推!!!~~

下期預告


下一篇
【Day 02】- 消失在系統上的目錄與文件(教你如何藏檔案或目錄)
系列文
打通任督二脈奇幻之旅 - 用 30 天探索 Windows 底層運作原理15

尚未有邦友留言

立即登入留言