2017-08-12 82 views
-1

我該如何去了解Linux程序集中的資源文件?我想逐字節閱讀它,並且我發現的所有內容都是在Windows中使用的。我剛剛開始學習彙編,似乎很少有好的資源。我使用NASM彙編器。在Linux程序集中創建一個資源文件

+0

爲什麼選擇倒票? – Peyto

+0

這個問題是非常相似的這個[SO問題](https://stackoverflow.com/questions/42235175/how-do-i-add-contents-of-text-file-as-a-section-in- an-elf文件)。其中一個答案顯示瞭如何使用'objcopy'來使用NASM(其中一個例子)。雖然它是關於文本文件,但它也適用於二進制文件。 –

回答

1

一般來說,你沒有。 Linux不會像Windows那樣在可執行文件中嵌入資源數據。

在技術上可以把數據嵌入到可執行文件 - the easiest way is by using objcopy

objcopy --input binary \ 
    --output elf32-i386 \ 
    --binary-architecture i386 \ 
    data.bin data.o 

但是,不要指望除了你自己的可執行什麼讀取數據。例如,這不是您將圖標附加到GUI可執行文件的方式;這是用完全不同的方法完成的。

+0

我將如何閱讀該文件?在你的鏈接上的例子是C. – Peyto

+1

因此在NASM中,你需要'extern _binary_data_txt_start',然後是'mov rsi,_binary_data_txt_start'來獲得指向'rsi'中數據的指針。或'mov al,[_binary_data_txt_start]'獲取'al'中的第一個字節。 –