position-independent-code

    1熱度

    1回答

    我更新了我的kali linux之後,然後使用gcc編譯我的程序。在更新系統之前,我使用objdump來反彙編程序,.text地址是0x08048 ...,但之後,.text地址是0x00000 ...,gcc版本已從6.1.1更改爲6.3,怎麼了?爲什麼會發生?

    2熱度

    1回答

    我知道兩者都用於製作可以放置在不同位置的代碼,但每種方法都是如何工作的,爲什麼?

    4熱度

    1回答

    如果一個重要的程序被編譯使用下面的命令: arm-none-eabi-gcc -shared -fpic -pie --specs=nosys.specs simple.c -o simple.exe 和重定位項都印有該命令: arm-none-eabi-readelf simple.exe -r 有一串重定位的條目部分(見下文)。 因爲-fpic/-pie標誌會導致編譯器生成一個位置無關

    0熱度

    1回答

    我有一個爲ARM編譯的代碼模塊,帶-fpie,我想在第一次執行時清除BSS。但是,當我參考BSS部分開始和結束的鏈接描述文件符號時,我得到的代碼包含局部變量中的絕對地址。 這是我組裝的切入點: .section entry_point code_entry: # Save arguments to the stack push {r0-r2} # Loop ov