我的嵌入式項目有一個後處理步驟,用閃存的(某些部分)的CRC替換可執行文件中的值。這一步只能在鏈接之後完成,因爲這是CRC映像的第一次機會。在過去,文件格式是COFF,並且我創建了一個自定義工具來完成修補。簡單修改elf文件的工具?
開發工具已經切換到ELF,所以我需要重新實現CRC修補程序。在我做之前,我想我會尋找一個現有的工具來做到這一點。編譯器基於gcc,但我看不到可以完成這項工作的任何組合ld
和nm
和readelf
。谷歌搜索尚未取得豐碩成果。
我現在的工具使用nm
找到要打補丁的地址,並用地址,期望值(以防止覆蓋錯誤的數據)和新的CRC值調用修補程序。 CRC是根據可執行文件的「十六進制」格式計算的(我也打補丁),幸運的是我不必重做那部分。
我可以實現這與libelf
和自定義代碼再次,但在我之前,它已經存在?
有沒有更好的方法來完成我的目標,即將可執行文件的CRC放入可執行文件中,以便可用於應用程序?
這是一個很棒的建議,+1。我會試一試。 – 2010-10-02 01:15:52