2014-11-04 29 views
0

我需要測試我正在寫入的一個程序,以對抗病態角落案例。要做到這一點,我想編譯一個彙編文件,這樣.text部分將遠離它後面的部分。創建一個ELF文件,其中.text部分之後的部分與.text部分非常相似

也就是說,我想有這樣的事情,當我在編譯的文件運行objdump -h

12 .text   00000204 0000000000400400 0000000000400400 00000400 2**4 
        CONTENTS, ALLOC, LOAD, READONLY, CODE 
    13 .fini   00000016 0000000000500000 0000000000500000 00000604 2**2 

注意如何有一個章節的結束和另一個的開始之間的很大的差距。 我修改了命令的輸出以說明我想要的內容,所以如果輸出中的內容沒有意義,那就是因爲這個原因。

回答

0

-Wl,--section-start=.text=0x100000 -Wl,--section-start=.data=0x400000運行彙編程序爲我做了工作。

2

...你想知道如何強制鏈接器創建一個像這樣的文件?

您可以手動編寫鏈接腳本,並使用「ld」(即「gcc」的「-Wl,-T,filename」選項)的「-T filename」選項。

+0

我不知道該怎麼把鏈接腳本。 我知道我可以使用--section-start來更改部分的起始位置,但是爲兩部分執行此操作不起作用。 – nitzanms 2014-11-04 16:32:08