逆向工廠(一):從hello world開始

前言

從本篇起,逆向工廠帶你們從程序起源講起,領略計算機程序逆向技術,瞭解程序的運行機制,逆向通用技術手段和軟件保護技術,更加深刻地去探索逆向的魅力。html

1、程序如何誕生?

Clipboard Image.png

1951年4月開始在英國牛津郡哈維爾原子能研究基地正式投入使用的英國數字計算機「哈維爾·德卡特倫」,是當時世界上僅有的十幾臺電腦之一。圖中兩人手持的「紙帶」便是早期的程序,紙帶經過是否穿孔記錄1或0,而這些正好對應電子器件的開關狀態,這即是機器碼,是一種早期計算機程序的存儲形式。 java

Clipboard Image.png

計算機程序是用來實現某特定目標功能,因此須要將人類思惟轉換爲計算機可識別的語言,從人類語言到電子器件開關的閉合,這中間的媒介即是「編程語言」。python

「編程語言」大體分爲三類:c++

一、機器語言,又稱機器碼、原生碼,電腦CPU可直接解讀,因該語言與運行平臺密切相關,故通用性不好,上面提到的利用卡帶記錄的便屬於該類語言;編程

二、彙編語言,是一種用於電子計算機、微處理器、微控制器或其餘可編程器件的低級語言,亦稱爲符號語言。在不一樣的設備中,彙編語言對應着不一樣的機器語言指令集, 運行時按照設備對應的機器碼指令進行轉換,因此彙編語言可移植性也較差;編程語言

Clipboard Image.png

三、高級語言,與前兩種語言相比,該類語言高度抽象封裝,語法結構更接近人類語言,邏輯也與人類思惟邏輯類似,所以具備較高的可讀性和編程效率。可是高級語言與彙編語言相比,因編譯生成的輔助代碼較多,使運行速度相對「較慢」。 java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易語言等等 均屬於高級語言。spa

學會編程語言各類基本語義語法後,就能夠實戰了,而實戰場所由IDE提供。IDE(集成開發環境Integrated Development Environment)是用於提供程序開發環境的應用程序,目前IDE的種類繁多,再也不敖述,只要本身用得順手、開發效率高、你開心就好。.net

http://www.freebuf.com/special/114231.htmlhtm

另外能夠參考逆向工程系列 http://www.freebuf.com/news/others/86147.htmlip

相關文章
相關標籤/搜索