看板 LinuxDev 關於我們 聯絡資訊
查過網路上的資源,不過好像沒有找到我的問題 就是說假設我gcc出一個c的可執行檔a.out 然後a.out進行objdump -D輸出成b 那之後有沒有辦法重新組譯回去成執行檔? 我gcc b 都會出現 b: file not recognized: File format not recognized collect2: 錯誤:ld 回傳 1 請問是我方法錯誤嗎? -- Java Android程設學習中 Github歡迎討論 https://github.com/HybridGlucose -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.231.10 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1444060510.A.60A.html
leolarrel: 把檔名b 改成b.s 試看看 10/06 11:21
leolarrel: 說錯了,是b.S ,副檔名是大寫的S 10/06 11:24
會出現一堆 Error: junk at end of line, first unrecognized character is `9' 這樣的錯誤訊息
tsoahans: as b 10/06 19:18
結果一樣 如果我沒記錯gcc 一樣會調用as來處理不是? ※ 編輯: a07051226 (1.160.211.115), 10/06/2015 23:36:58
leolarrel: 那這樣看來objdump的輸出不能拿來直接組譯了,你要自己 10/07 15:20
leolarrel: 加工 10/07 15:20
descent: 你是只有把組合語言部份抓出來,還是整個結果用 gcc 重編 10/07 22:11
objdump後改都沒改就直接gcc ※ 編輯: a07051226 (1.160.211.115), 10/08/2015 07:05:45
bdvstg: 你用gcc -S xxx.c 去拿到.s檔 這.s是可以組譯的 10/08 12:31
bdvstg: 比較這個.s 跟objdump的結果 應該會發覺差很多才對 10/08 12:32
bdvstg: 關於你想做的stackoverfloaw的文章 http://goo.gl/GWbZMb 10/08 12:36
lantw44: 如果只是要修改小部份內容,不改變長度的話可以考慮用 10/11 14:29
lantw44: HT editor 直接改 assembly / machine code 10/11 14:30
lantw44: 要塞一整個 function 進去的話不知道 elfsh 能做到多少 10/11 14:30