神話系列之一 C 程式不能反編譯

2021-05-22 07:54:55 字數 719 閱讀 9061

網上流傳很多c和c# 神話

我聽了以後,決定打破這些美麗的神話。。給大家開開眼界,更希望能說明乙個神話,。,,

解開我 最神秘的等待 

c程式能不能反編譯成

c語言的程式?

神話:無法反編譯的,,只能通過彙編來解釋。

詳細:c語言源程式經過編譯、優化,得到目標格式,但由目標格式不能逆推得到c原始碼,因為目標碼可能是經過優化的,誰也不能說這些優化做到了哪樣的程度,因而沒 有演算法進行這樣的逆推,所以不可能從目標格式得到c原始碼。

今天我反編譯的是我自己寫的

小東西,其實就是msdn找的例子。

// crt_printf.c

// this program uses the printf and wprintf functions

// to produce formatted output.

#include

int main( void )

用的是vc2010 (應該沒有什麼疑問吧)

編譯模式 release(vc預設那個)

首先要明白,如果直接全部反編譯是不明智的,

因為編譯器 會產生很多資訊

我們知道 程式要從 main 函式入口

我們就只需要反編譯這個就可以了

你們看看反編譯結果:

int __cdecl main()

這段**簡單修改以後可以編譯通過的!

神話系列之一 C 程式不能反編譯

網上流傳很多c和c 神話 我聽了以後,決定打破這些美麗的神話。給大家開開眼界,更希望能說明乙個神話,解開我 最神秘的等待 c程式能不能反編譯成 c語言的程式?神話 無法反編譯的,只能通過彙編來解釋。詳細 c語言源程式經過編譯 優化,得到目標格式,但由目標格式不能逆推得到c原始碼,因為目標碼可能是經過...

C 系列之一 C 簡介

c 系列之一 c 簡介 c 是一種靜態型別的 編譯式的 支援過程化程式設計 物件導向程式設計和泛型程式設計的一種中級語言,任何合法的 c 程式都是合法的 c 程式。注意 使用靜態型別的程式語言是在編譯時執行型別檢查,而不是在執行時執行型別檢查。c 完全支援物件導向的程式設計,包括物件導向開發的四大特...

神話系列之一 C 開發的作業系統和資料庫

網上流傳很多c和c 神話 我聽了以後,決定打破這些美麗的神話。給大家開開眼界,更希望能說明乙個神話,解開我 最神秘的等待 我覺得好像不太可能 可是非有人說可以 大家給講講 行麼 睡著的時候才有可能吧。c 寫的系統怎麼操作底層硬體?很多需要的dll都是c或是c 寫好呼叫的。再說了,沒有 framewo...