反編譯器粵拼faan2 pin1 jik6 hei3 [e 1]),香港又有叫反組譯器或者反解器[1],係一種電腦程式,特徵係識得將行到二進制格式檔案,轉化做高級程式語言源碼:喺廿一世紀初,啲人寫親程式通常都係用高級程式語言嚟寫嘅,高級語言例子有 PythonJavascript 等等;呢啲程式語言設計到對人類嚟講易睇易明,但係電腦唔會識睇由呢啲語言寫成嘅源碼,所以用呢啲語言寫成嘅程式實要用編譯器轉化,變成機械語言或者組合語言低級語言)先會攞去畀電腦行;反編譯器就係一類特製工具,能夠將機械語言碼變返做高級語言嘅源碼[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]

反解做法

編輯
内文:抽象化
睇埋:控制流程

主要用途

編輯

法律問題

編輯

睇埋

編輯

引述

編輯

英文詞彙:

  1. 英文:decompiler
  2. machine language
  3. assembly language
  4. compiler

引用來源:

  1. (香港繁體) 反組譯(反解) APK Decompile (Android),香港矽谷
  2. Boomerang Decompiler Project: Boomerang: A general, open source, retargetable decompiler of machine code programs [Online], Available: [1]
  3. Perry, M., & Oskov, N. (2004). Introduction to Reverse Engineering Software. URL (consulted August 2004) 31.4.1
  4. "machine code (machine language)". Tech Target (英文). 喺2021年5月21號搵到..
  5. Decompilers - Overview. Science Direct.
  6. Making a Decompiler from Nothing — A Postmortem. Medium,佢呢度用咗 C 程式語言嘅條件陳述式做例,講佢可以點樣用低級語言表達。

外拎

編輯