反編譯器
閱讀設定
(由反組譯器跳轉過嚟)
反編譯器(粵拼:faan2 pin1 jik6 hei3 [e 1]),香港又有叫反組譯器或者反解器[1],係一種電腦程式,特徵係識得將行到嘅二進制格式檔案,轉化做高級程式語言源碼:喺廿一世紀初,啲人寫親程式通常都係用高級程式語言嚟寫嘅,高級語言例子有 Python 同 Javascript 等等;呢啲程式語言設計到對人類嚟講易睇易明,但係電腦唔會識睇由呢啲語言寫成嘅源碼,所以用呢啲語言寫成嘅程式實要用編譯器轉化,變成機械語言或者組合語言(低級語言)先會攞去畀電腦行;反編譯器就係一類特製工具,能夠將機械語言碼變返做高級語言嘅源碼[2][3]。
基本概念
[編輯]睇埋:編譯器
程式語言係一種用嚟教電腦做運算嘅工具。程式語言可以分做兩大種:高級程式語言同低級程式語言,當中高低係講緊抽象化嘅程度有幾高——低級程式語言嘅例子有機械語言[e 2]同組合語言[e 3]呀噉,呢啲語言抽象化程度低,寫到好接近電腦內部實際做嘅運算,但係對人類嚟講好難明。當中機械語言直頭可以係「完全由一大串十六進制數字組成」嘅[4],想像好似
A5 12 18 65 34
噉嘅碼,包含咗「將記憶體呢個位嘅數值,加落去記憶體嗰個位嘅數值嗰道」噉嘅指示。相比之下,高級程式語言就做咗高度嘅抽象化,寫到同電腦內部實際行嘅運算爭好遠,但係對人類嚟講易明,好似係以下噉嘅 Python 源碼:
a = 5 # 設 a 做 5
b = 4 # 設 b 做 4
print(a+b) # 「同我顯示出 a + b 得出嘅結果。」
編譯器[e 4]做嘅,係攞住一啲以高級語言寫成嘅源碼,轉換做電腦「睇得明」嘅低級語言碼。反編譯器做嘅嘢就啱啱相反,攞住一段低級語言碼做抽象化,建構返一段功能相等嘅高級語言碼出嚟[5][6]。
反解做法
[編輯]内文:抽象化
睇埋:控制流程
主要用途
[編輯]法律問題
[編輯]睇埋
[編輯]引述
[編輯]英文詞彙:
引用來源:
- ↑ (香港繁體) 反組譯(反解) APK Decompile (Android),香港矽谷
- ↑ Boomerang Decompiler Project: Boomerang: A general, open source, retargetable decompiler of machine code programs [Online], Available: [1]
- ↑ Perry, M., & Oskov, N. (2004). Introduction to Reverse Engineering Software. URL (consulted August 2004) 31.4.1
- ↑ "machine code (machine language)". Tech Target (英文). 喺2021年5月21號搵到..
- ↑ Decompilers - Overview. Science Direct.
- ↑ Making a Decompiler from Nothing — A Postmortem. Medium,佢呢度用咗 C 程式語言嘅條件陳述式做例,講佢可以點樣用低級語言表達。
外拎
[編輯]- (英文) 薩爾達傳說 時之笛 畀人完全解譯咗,YouTube 影片講經典 N64 遊戲《薩爾達傳說 時之笛》畀人解譯咗。