反編譯工具能反編譯出注釋嗎?

Android反編譯工具 反編譯不出xml的注釋

請問你們平時做別的開發,反編譯出來的東西有注釋嗎??


不能

編譯的時候,編譯器沒有將注釋編譯進去

反編譯的時候,自然也就無法把注釋編譯出來


預處理器第一時間把注釋過濾掉了。

二進位碼文件里最接近文本的東西是符號表和靜態字元串,而且不是每種版本都有。


不能,編譯程序時沒有編譯註釋,DOS下有個反彙編工具軟體Sourcer自動給反彙編出來的源程序添加一些注釋。


注釋是寫給人看的,絕大多數時候對程序邏輯並沒有任何意義,所以編譯器會在編譯過程中去掉所有注釋,這樣也能幫助節省代碼的大小。

少部分注釋是寫給編譯器的預處理器看的,用於實現一些編譯使用的功能開關,但是也不會被編譯進目標代碼里。


不能,注釋在編譯時會被直接忽略


如果你剛好用scheme,並且用這種喪心病狂的注釋方法:

(define (fuck x)
"what
the
fuck"
(* x x))

就能反編譯...


String comment = "This comment will be decompiled";


編譯的時候注釋會變成一個空格.你能把空格反編譯成什麼?


哈,我記得預處理有一步就是把注釋的內容全變成空白,這樣


這跟反編譯系統無關。你如果能找到或者自己開發一個將注釋內容也包含在編譯結果中的編譯器,就能把注釋反編譯出來。

問題是,沒有人會這樣做啊。這有什麼意義呢?


逆向連變數名稱都不能逆向出來的。。。注釋更別說了


推薦閱讀:

程序的靜態存儲區,動態存儲區和堆以及棧的關係是什麼?
為什麼很多編程語言採用花括弧區分 block 而非縮進?
為什麼說 C 語言是系統級編程的首選?
Linux 下有沒有像 Visual Studio 一樣的,有自動填充、提示語法錯誤、斷點調試等功能的 C/C++ IDE?
用 int 類型表示多個字母,把多個字母轉化為整數的原理是什麼?

TAG:Android開發 | C編程語言 | 彙編語言 | 反編譯 |