iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
1
Security

逆向工程 – 從入門到放棄系列 第 11

Day11 - 如何生出 Hello world 小孩 - 理論篇

  • 分享至 

  • xImage
  •  

引言我有說到,因為好奇,才分享逆向工程的文章。今天就要來揭秘電腦是如何通過重重關卡,才能識別並執行程式設計師所寫的程式碼。不囉唆,先上圖,


Reference

透過圖,不難發現,原來一個簡單的 hello world 中間處理過程如此繁多。

高組目執記

先看一下流程圖,接著我會個別解釋其作用:

  1. 高階語言
    就是你寫的程式碼(比方說 C 語言)
  2. 組合語言
    就是我們 Day2 寫的那些程式碼。透過編譯器,可以將高階語言轉換成組合語言
  3. 目的檔
    根據 Wiki,目的檔(英語:object file)即存放目的碼的電腦檔案,它常被稱作二進位檔案(binaries)
  4. 執行檔
    就是我們平常執行的程式,比方說 Windows 的 .exe 或 Linux 的 ELF 檔
  5. 記憶體
    根據 Wiki,電腦記憶體是一種利用半導體、磁性媒介等技術製成的儲存資料的電子裝置。

編組連載

  1. 編譯器
    高階語言轉成組合語言的程式
  2. 組譯器
    組合語言轉成目的檔的程式
  3. 連結器
    目的檔轉成執行檔的程式
  4. 載入器
    執行檔載入記憶體的程式

結論

今天都在講理論,明天再用程式碼手把手教學這些步驟!


上一篇
Day10 - Syscall 好像時常聽到?到底是什麼?
下一篇
Day12 - Hello world 的誕生 - 實戰篇
系列文
逆向工程 – 從入門到放棄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言