導航:首頁 > 源碼編譯 > gcc怎麼反編譯

gcc怎麼反編譯

發布時間:2022-06-13 21:01:48

❶ gcc下怎麼將 .0後綴反編譯成源代碼

那叫反編譯 但是所有的反編譯只能還原為匯編代碼 以描述程序流程

命令是 objmp , 將2進制代碼還原為C/C++代碼的軟體不存在

❷ gcc可以編譯C語言,而GCC又是C語言編寫的,那用c編寫的gcc又是怎麼編譯的呢 就像unix是C寫的那是怎麼編譯的

比如你要開發一個新的c編譯器,你可以用c實現,然後用現在的編譯器去編譯這個新編譯器,反之亦然。

所以這個根源就在於第一個可以使用的編譯器是怎麼來的。你知道最開始程序是怎麼寫的嗎,先用匯編寫出偽代碼,然後再對照表轉換成二進制數據,再以紙袋打孔的方式,輸入進計算機。

❸ 用gcc怎麼編譯出真正的位置無關的代碼

gcc test.c 的意思是直接生成a.out gcc test1.c 也是直接生成a.out 但是是會替換前一個的a.out 如果不放心你可以指定生成的名字 例如: gcc test.c -o aaa gcc test1.c -o bbb 這樣執行aaa就是test代碼了 執行bbb就是test1代碼了

❹ gcc怎麼編譯.o

gcc中-c和-o是編譯時可選的參數
-加-c, (compile)只編譯生成中間同名目標文件,不鏈接
-加-o,(output)指定輸出文件名,該文件為可執行文件,不加-o會默認生成a.out
舉例:
gcc -c hello.c 編譯生成hello.o文件
gcc -o hello hello.c 生成可執行文件hello

linux gcc編譯.c文件成為一個可執行文件,怎麼復原.c文件

完全復原基本不可能,只能使用某些工具生成偽C代碼。比如IDA等

❻ 的程序在Gcc下怎麼編譯

關於 C 語言源程序,最簡單的使用方式就是:gcc my_program.c <cr>,如果沒有程序錯誤的話,gcc 編譯器會生成一個預設的可執行程序:a.out 。
常用的有:gcc -o my_runfile my_program.c <cr>
使用 my_runfile 運行文件名代替預設的可執行程序 a.out
gcc -c my_program.c <cr>
只編譯,不連接。生成一個 my_program.o 的文件。
如果還需要更多的選項,那就需要查看 gcc 的編譯選項了。當然了,如果程序的規模再要大的話,那就需要編寫 makefile 文件,以及 make 工具對 makefile 進行管理了。

❼ 怎麼用gcc編譯文件

在終端中輸入 gcc 文件名 -o 目標文件名
然後 ./目標文件名 就行了,沒有目標文件名,自動存為 a
執行 ./a 就行了。

在使用Gcc編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,其中多數參數我們可能根本就用不到,這里只介紹其中最基本、最常用的參數。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
-c,只編譯,不連接成為可執行文件,編譯器只是由輸入的.c等源代碼文件生成.o為後綴的目標文件,通常用於編譯不包含主程序的子程序文件。
-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。
-g,產生符號調試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調試,我們就必須加入這個選項。
-O,對程序進行優化編譯、連接,採用這個選項,整個源代碼會在編譯、連接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、連接的速度就相應地要慢一些。
-O2,比-O更好的優化編譯、連接,當然整個編譯、連接過程會更慢。
-Idirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預編譯過程中使用的參數。C程序中的頭文件包含兩種情況∶
A)#include <myinc.h>
B)#include 「myinc.h」
其中,A類使用尖括弧(< >),B類使用雙引號(「 」)。對於A類,預處理程序cpp在系統預設包含文件目錄(如/usr/include)中搜尋相應的文件,而B類,預處理程序在目標文件的文件夾內搜索相應文件。

GCC執行過程示例

示例代碼 a.c:
#include <stdio.h>
int main()
{
printf("hello\n");
}
預編譯過程:
這個過程處理宏定義和include,並做語法檢查。
可以看到預編譯後,代碼從5行擴展到了910行。
gcc -E a.c -o a.i
cat a.c | wc -l
5
cat a.i | wc -l
910
編譯過程:
這個階段,生成匯編代碼。
gcc -S a.i -o a.s
cat a.s | wc -l
59
匯編過程:
這個階段,生成目標代碼。
此過程生成ELF格式的目標代碼。
gcc -c a.s -o a.o
file a.o
a.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
鏈接過程:
鏈接過程。生成可執行代碼。鏈接分為兩種,一種是靜態鏈接,另外一種是動態鏈接。使用靜態鏈接的好處是,依賴的動態鏈接庫較少,對動態鏈接庫的版本不會很敏感,具有較好的兼容性;缺點是生成的程序比較大。使用動態鏈接的好處是,生成的程序比較小,佔用較少的內存。
gcc a.o -o a
程序運行:
./a
hello
編輯本段
GCC編譯簡單例子

編寫如下代碼:
#include <stdio.h>
int main()
{
printf("hello,world!\n");
}
執行情況如下:
gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s
gcc -c hello.s -o hello.o
gcc hello.c -o hello
./hello
hello,world!

❽ 怎麼用gcc編譯C代碼

首先你得有個文本編輯器,可以用vi,不過新手建議用gedit,ubuntu應該帶有這個。
首先運行gedit test.c &,啟動後在編輯界面輸入代碼,保存後,在終端運行
gcc test.c,輸出默認為a.out,要執行的話,運行./a.out
如果嫌a.out別扭,gcc test.c -o helloworld
運行../helloworld

❾ gcc是什麼語言寫的,怎麼編譯的

gcc它是一個多語言項目, 它主語言是C語言,

如何編譯你可以通過在命令行查詢它的幫助文檔再根據自己的項目寫出適合的編譯命令

它使用的語言如下:

❿ arm-linux-gcc怎麼編譯文件

可以使用gcc命令進行編譯:

例子:

gcc -o hello hello.c #在這里hello.c是源文件,hell為目標輸出文件

通過編譯器編譯主要是經過:預處理,匯編,編譯和鏈接的過程;

閱讀全文

與gcc怎麼反編譯相關的資料

熱點內容
阿里用的什麼資料庫伺服器 瀏覽:337
玩劍網用哪個攻略app 瀏覽:76
javamysql資料庫操作 瀏覽:225
眉山參加少兒編程培訓 瀏覽:986
androidaes加密java 瀏覽:816
蜜字的app叫什麼 瀏覽:544
程序員配樂 瀏覽:453
做一個解壓屋 瀏覽:619
品牌衣服用什麼app 瀏覽:151
python3鏈接資料庫 瀏覽:55
教課書英語是什麼app 瀏覽:884
環液式壓縮機 瀏覽:479
android控制項事件 瀏覽:968
雲伺服器的鏡像選擇什麼 瀏覽:755
python如何設置cplex 瀏覽:10
linux的mv命令詳解 瀏覽:359
怎麼把安裝好的python放在桌面上 瀏覽:121
mysql退出當前命令 瀏覽:743
現在還有什麼手機好用的app 瀏覽:327
java字元處理函數 瀏覽:278