導航:首頁 > 源碼編譯 > pe或elf文件編譯

pe或elf文件編譯

發布時間:2024-05-14 11:16:14

㈠ Uboot編譯為什麼沒有生成elf格式的文件

1、通過gcc編譯出來的是elf文件
2、通過objcpy可以把elf文件轉換為bin文件

CC=ppc-gcc
LD=ppc-ld
OBJCOPY=ppc-obj
$(CC)-g$(CFLAG)-cboot.S
#先將boot.S文件生成boot.o
$(LD)-g-Bstatic-T$(LDFILE)
-Ttext0x12345600boot.o
--start-group-Mapboot.map-oboot.elf
#再將boot.o生成boot.elf
$(OBJCOPY)-Obinary-R.note-R.comment-Sboot.elfboot.bin
#接著將boot.elf轉換為boot.bin
#使用-Obinary(或--out-target=binary)輸出為原始的二進制文件
#使用-R.note(或--remove-section)輸出文件中不要.note這個section,縮小了文件尺寸
#使用-S(或--strip-all)輸出文件中不要重定位信息和符號信息,縮小了文件尺寸

㈡ C語言文件的編譯與執行的四個階段並分別描述

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

1、預處理:導入源程序並保存(C文件)。

2、編譯:將源程序轉換為目標文件(Obj文件)。

3、鏈接:將目標文件生成為可執行文件(EXE文件)。

4、運行:執行,獲取運行結果的EXE文件。

(2)pe或elf文件編譯擴展閱讀:

將C語言代碼分為程序的幾個階段:

1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。

2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。

4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。

㈢ ELF文件淺析

前言:在逆向工作流程中,我們會接觸到so文件,並且在某種情況下會對so文件進行處理。 在文件的角度而言,so隸屬於 ELF 文件。 站在ELF文件角度來分析一下so文件。

ELF 文件大致分為3個主要部分
1、ELF HEAD --ELF文件頭部分
2、 Program Header Table --程序頭表
3、Section Header Table --節頭表

這個部分稱為「頭」,裡面大致描述在這個文件裡面的組織。如:文件魔術、目標架構體系(如ARM、X86...)、版本信息、各個部分的大小、各個部分的偏移起始地址等等。
下面描述的位置都是固定的,且位置都是緊接著下一部分的位置。(有誤歡迎指出)
這里我用的是IDA的android_server文件做演示,來簡單看一部分內容。

文件的標識信息(e_ident):前16位元組 (包括魔術部分:前4位元組 如.ELF)
文件類型(e_type ):2位元組
目標架構(e_machine ):2位元組
版本(e_version):4位元組
程序入口虛擬地址(e_entry ):4位元組
程序頭部表偏移地址(e_phoff ):4位元組
節區頭部表偏移地址(e_shoff ):4位元組
保存與文件相關的,特定於處理器的標志(e_flags ):4位元組
ELF頭的大小(e_ehsize ):2位元組
每個程序頭部表的大小(e_phentsize ):2位元組
程序頭部表的數量(e_phnum ):2位元組
每個節區頭部表的大小(e_shentsize):2位元組
節區頭部表的數量(e_shnum ):2位元組
節區字元串表位置(e_shstrndx):2位元組
......

程序頭表描述的是程序裡面各個段的信息。
這里來舉例看一下
比如程序頭,第一部分, 這個部分描述程序頭的信息,比如類型、大小、偏移等等;這個部分描述的就是程序頭的信息。

一個程序中到底有多少節信息,取決於這一部分,節頭表。

比較經典的,就是這里的導出函數信息。

㈣ 如何反編譯linux里的elf文件

objmp -S a.out > a.S

閱讀全文

與pe或elf文件編譯相關的資料

熱點內容
什麼伺服器雲鳥最便宜 瀏覽:214
vs編譯器反匯編 瀏覽:562
程序員直播做項目創業 瀏覽:396
linux下samba配置 瀏覽:793
程序員面試銀行崗位會有編制嗎 瀏覽:412
ex表怎麼加密碼保護 瀏覽:170
小孩上編程課用哪款好 瀏覽:556
如何製作伺服器商店 瀏覽:732
壓縮氣管閥門 瀏覽:464
pdf推文 瀏覽:355
69程序員 瀏覽:581
阿里雲伺服器鏡像如何遷移到騰訊 瀏覽:989
安卓如何顯示日期在狀態欄 瀏覽:803
cadsplt這個命令用不了 瀏覽:467
安卓誇克怎麼取消監管 瀏覽:662
pdf怎麼裁剪圖片 瀏覽:438
黑上宏命令 瀏覽:644
mac解壓壓縮包有密碼 瀏覽:706
命令與征服知乎 瀏覽:562
小時代pdf 瀏覽:223