初識二進(jìn)制文件

ELF a linux excutable walkthrough

計算機(jī)文件 一般分為兩類:二進(jìn)制文件ASCII文件(也稱純文本文件)式塌。

  • ASCII文件:用純文本編輯器能夠打開且打開文件的內(nèi)容是人類能夠理解的可顯示字符劝术。

  • 二進(jìn)制文件:狹義的說缩多,除去純文本文件以外的文件均為二進(jìn)制文件,它們的存儲形式為二進(jìn)制养晋。

二進(jìn)制文件的一些描述

二進(jìn)制文件在不同操作系統(tǒng)上的表現(xiàn)形式不一樣衬吆。通過基于 unix 操作系統(tǒng)的 file 命令可以獲得二進(jìn)制文件的相關(guān)描述,如:


setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 2.6.24, BuildID[sha1]=c5ecc1690866b3bb085d59e87aad26a1e386aaeb, not stripped

下面我們來分析下這段輸出到底描述了些什么绳泉。

ELF (Excutable and Linkable Format)

可執(zhí)行與可鏈接格式(ELF)在計算機(jī)科學(xué)中是一種用于可執(zhí)行文件逊抡、目標(biāo)文件、共享庫和核心轉(zhuǎn)儲的標(biāo)準(zhǔn)文件格式零酪。1999年冒嫡,被86open項目選為x86架構(gòu)上的類Unix操作系統(tǒng)的二進(jìn)制文件格式標(biāo)準(zhǔn),用來取代COFF四苇。因其可擴(kuò)展性與靈活性孝凌,也可應(yīng)用在其它處理器、計算機(jī)系統(tǒng)架構(gòu)的操作系統(tǒng)上月腋。

具體參考:Excutable and Linkable Format

其它文件格式:

  • PE (Portable Excutable) —— 針對 Windows 操作系統(tǒng)

  • Mach-O(Mach object) —— 針對 NeXTSTEP蟀架、 OS X 和 iOS

32-bit

不同操作系統(tǒng)寫入二進(jìn)制文件的方式,與操作系統(tǒng)的匯編指令集有關(guān)榆骚。這里的 32-bit 不是代表編譯該文件的操作系統(tǒng)就是32位操作系統(tǒng)片拍,兩者之間沒有關(guān)聯(lián)。不同的操作系統(tǒng)可以使用不同的匯編指令集編譯出具有相同功能的程序妓肢。

常見的匯編指令集有MIPS32(32-bit)穆碎、MIPS64、ARM职恳、PowerPC所禀、x86(32-bit)和x86-64(64-bit)等,最后兩個匯編指令集是比較常見的放钦。

LSB (Linux Stardard Base)

LSBLinux標(biāo)準(zhǔn)規(guī)范的英文縮寫色徘。

Intel 80386

Intel 80386是Intel的32位微處理器。這意味著該可執(zhí)行文件可以在Intel的80386微處理器或與其兼容的任何設(shè)備上運(yùn)行操禀。最新的64位微處理器都向后兼容32位微處理器褂策。

SYSV

SYSV 指的就是 UNIX System V。UNIX System V是Unix操作系統(tǒng)眾多版本中的一支颓屑。它最初由AT&T開發(fā)斤寂,在1983年第一次發(fā)布,因此也被稱為AT&T System V揪惦。一共發(fā)行了4個System V的主要版本:版本1遍搞、2、3和4器腋。Unix的另一個主要版本是BSD(伯克利軟件發(fā)行版)溪猿。

其它:

  • GNU/Linux —— Linux 操作系統(tǒng)

Dynamically linked (uses shared libs)

在動態(tài)鏈接中,將外部庫(共享庫)的名稱放置在最終的可執(zhí)行文件中纫塌,而實(shí)際鏈接是在運(yùn)行時才將可執(zhí)行文件和庫都放置在內(nèi)存中時執(zhí)行的诊县。因此,我們不必將標(biāo)準(zhǔn)庫保留在二進(jìn)制文件中(您可以將它們導(dǎo)入程序中)措左。這有助于減小文件大小依痊,并允許多個程序使用可執(zhí)行模塊的單個副本。

其它:

  • Static linking

Static linking (靜態(tài)鏈接) 中怎披,程序中使用的所有庫模塊均被復(fù)制到最終的可執(zhí)行文件中胸嘁。這是由鏈接器執(zhí)行的,并且是編譯過程的最后一步钳枕。這會大大增加文件大小缴渊。

但是,使用靜態(tài)鏈接庫的程序通常比使用共享庫的程序快鱼炒。同樣在靜態(tài)鏈接程序中衔沼,所有代碼都包含在一個可執(zhí)行模塊中。因此昔瞧,它們幾乎不會遇到兼容性問題指蚁。

interpreter /lib/ld-

這是 ELF(可執(zhí)行與可鏈接格式) 解釋器。它負(fù)責(zé)動態(tài)鏈接自晰。

for GNU/Linux 2.6.24

與程序目標(biāo)鏈接 C 庫的 Linux 系統(tǒng)內(nèi)核版本凝化。

not stripped

not stripped 直譯就是 沒有剝離 的意思。此信息表示可執(zhí)行程序和原始源代碼之間存在關(guān)系酬荞。它包括諸如全局和靜態(tài)變量名稱以及函數(shù)名稱之類的內(nèi)容搓劫。

相反瞧哟,stripped 代表沒有這些調(diào)試信息。


好了~ 上面就是關(guān)于使用 file 命令查出的一些關(guān)于二進(jìn)制文件的描述枪向。這對我們?nèi)腴T CTF 也有一定的幫助勤揩。

Reference

參考資料 Knowing your Binary!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秘蛔,隨后出現(xiàn)的幾起案子陨亡,更是在濱河造成了極大的恐慌,老刑警劉巖深员,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件负蠕,死亡現(xiàn)場離奇詭異,居然都是意外死亡倦畅,警方通過查閱死者的電腦和手機(jī)遮糖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滔迈,“玉大人止吁,你說我怎么就攤上這事×呛罚” “怎么了敬惦?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谈山。 經(jīng)常有香客問我俄删,道長,這世上最難降的妖魔是什么奏路? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任畴椰,我火速辦了婚禮,結(jié)果婚禮上鸽粉,老公的妹妹穿的比我還像新娘斜脂。我一直安慰自己,他們只是感情好触机,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布帚戳。 她就那樣靜靜地躺著,像睡著了一般儡首。 火紅的嫁衣襯著肌膚如雪片任。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天蔬胯,我揣著相機(jī)與錄音对供,去河邊找鬼。 笑死氛濒,一個胖子當(dāng)著我的面吹牛产场,可吹牛的內(nèi)容都是我干的鹅髓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼京景,長吁一口氣:“原來是場噩夢啊……” “哼迈勋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起醋粟,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎重归,沒想到半個月后米愿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鼻吮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年育苟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椎木。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡违柏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出香椎,到底是詐尸還是另有隱情漱竖,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布畜伐,位于F島的核電站馍惹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏玛界。R本人自食惡果不足惜万矾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望慎框。 院中可真熱鬧良狈,春花似錦、人聲如沸笨枯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猎醇。三九已至窥突,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硫嘶,已是汗流浹背阻问。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沦疾,地道東北人称近。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓第队,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刨秆。 傳聞我的和親對象是個殘疾皇子凳谦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)結(jié)構(gòu)與算法 1.算法的有窮性是指( )尸执。答案:A A)算法程序的運(yùn)行時間是有限的 B)算法程序所處理的數(shù)據(jù)量是...
    織夢學(xué)生閱讀 3,384評論 1 15
  • 帶你走入蘋果的世界 1.從iOS-Beta說起 2.背后隱藏的問題2.1 是否所有手機(jī)都能夠升級到最新的iOS系統(tǒng)...
    __Adan__閱讀 717評論 0 0
  • 天,微微亮缓醋,下了多半夜的小雨并沒有停的意思如失。雖是夏日,“京北第一草原”上的夜也能足以讓人感受到冬天的冷送粱。 太陽褪贵,今...
    昨天的印記閱讀 1,204評論 1 2
  • 今天去富人區(qū)的一個有名的普洱茶莊,去參加目前最流行的普洱茶的品飲茶會抗俄,喝茶太多脆丁,第一次有些醉茶,結(jié)束后动雹,一路感慨著...
    Jessy自由行走的貓閱讀 801評論 1 1
  • 邂逅過后槽卫,不再相識 有時候,美好的感覺不需要變?yōu)楝F(xiàn)實(shí)洽胶,只要經(jīng)歷了這樣的美好就好晒夹。 只識衣衫不識人 一個人的評價不會...
    你的春夏秋冬閱讀 286評論 8 2