第1102章 修改(第3頁)
要修改這些封裝好的成品軟件,就需要對它們進行反編譯,將已編譯的機器碼轉換回接近原始源代碼的可讀形式。
首先要提取目標程序運行時候的機器碼,這些就是一串串長長的零和一組成的編碼,解析這些代碼中的指令和數據結構,包括函數入口點、變量位置等,重建程序的控制流程圖,確定各個代碼段之間的跳轉關係,恢復變量名、函數名以及符號信息等等,根據上述信息生成可以理解的高級語言代碼,才能進行修改。
不同的軟件可能會採用不同的編程語言,反編譯的流程和工具也會有許多差別,以前的曾凡對編譯軟件也僅限於使用,至於反編譯軟件,他是隻聽說過,還從來沒用過。
夢中的曾凡技能可就太全面了,有了夢裡的記憶,他熟練的打開幾個英文網站,下載了幾個反編譯工具軟件。
然後將最常用的綠色版風暴影音運行起來,開始進行反編譯,這個視頻播放軟件早期版本是用C語言編寫的,正是曾凡比較擅長的領域,本來是單機播放器,可惜後來用戶多了以後,開始商業化運營,加了許多華而不實的東西,讓曾凡有點深惡痛絕。
現在正好拿來練練手,他常用的是比較早期的版本,很多地方做的還不太完善,新版本太臃腫,曾凡很不喜歡。
由於程序編譯過程中可能會對源代碼進行優化,導致源代碼的一些特性丟失,因此反編譯得到的代碼會與源代碼有所不同,有的地方可能會出現嚴重錯漏,反編譯工具也有很大的侷限性,並不是萬能。
不過能獲得大部分源碼,對曾凡來說就夠用了,從頭編寫一個播放器,對現在的他來說不是做不到,而是太過浪費時間,天下軟件一大抄,這些播放器軟件也是一個樣,要製造一件傢俱,沒必要自己從種樹開始,他也沒打算以此牟利,用來學習研究,做出來自己用,也在法律允許範圍內。
全身心投入的去做一件事情,時間就會過的很快,曾凡根本沒在乎過去了多少時間,直到肚子咕嚕咕嚕叫起來,一看時間已經快下午兩點了。
自己好像從昨天中午後,一直到現在都沒吃飯,怪不得肚子有意見,將改了半截的代碼保存好,曾凡拿起床底下的臉盆出門,去對面衛生間洗漱,準備出門吃飯。