是否有修改ELF二進制文件的動態部分中的共享庫條目的工具?我想明確地修改二進制文件中的共享庫依賴關係(即用自定義路徑替換現有庫的路徑)用於修改ELF二進制文件的動態部分的工具
6
A
回答
3
與自定義路徑替換路徑到現有庫
如果這是你自己的圖書館,那麼你可能將它鏈接這樣的:
$ cc -o prog1 -l/full/path/to/libABC.so prog1.o
,而不是正確的:
$ cc -o prog1 -L/full/path/to/ -lABC prog1.o
第一種方法告訴Linux鏈接器應用程序需要預先明智地說,圖書館,只有這個圖書館,不應該是可能的。第二種方法告訴應用程序需要安裝在系統某處的庫,無論是默認的庫路徑還是$ LD_LIBRARY_PATH指向的路徑(在運行時查找)。 -L僅在鏈接時使用。
否則,首先檢查是否可以使用符號鏈接來替換庫,而不是修補ELF。這是常用的技巧:之後很難修改可執行文件,但是很容易改變符號鏈接點的位置。
1
您可能需要檢查LD_LIBRARY_PATH
環境變量。
1
如果通過readelf
看看Linux中的顯.dynsym部分,你只看到:
1: 0000000000000000 163 FUNC GLOBAL DEFAULT UND [email protected]_2.2.5 (2)
其中只包含庫的符號名稱。但是,如果包括動態加載的信息,您可以:
libc.so.6 => /lib/libc.so.6 (0x00002ba11da4a000)
/lib64/ld-linux-x86-64.so.2 (0x00002ba11d82a000)
所以如前所述,絕對最容易的事情(假設你這樣做了調試,而不是永遠)也只是建立一個新會話,將您的自定義路徑導出到現有的LD_LIBRARY_PATH
之前,然後從那裏開始。
相關問題
- 1. 簡單修改elf文件的工具?
- 2. 在ELF二進制文件中修改asm指令
- 3. 將代碼/符號修補爲動態鏈接的ELF二進制文件
- 4. 修改二進制文件
- 5. ELF修改部分標誌
- 6. 修改ELF文件
- 7. 用Python修改二進制文件
- 8. 比較從不同版本的工具鏈生成的ELF /二進制文件
- 9. 如何擴展ELF二進制文件
- 10. ELF二進制文件在不同的linux分佈
- 11. 奇怪的ELF二進制
- 12. 用於運行測試二進制文件的工具
- 13. 用於在二進制文件中查找十六進制序列的工具
- 14. 反向工程一個ELF二進制文件
- 15. 如何讀取Python中ELF文件的動態部分
- 16. Linux的:如何修改共享庫的名字在動態節的ELF二進制
- 17. 編輯和更改二進制文件中的部分
- 18. 專利ARM ELF二進制
- 19. Java transfer從部分二進制文件?
- 20. ELF二進制使部分無法訪問
- 21. 從二進制文件讀取動態分配的矢量
- 22. 用於排序的修改的二進制搜索樹?
- 23. 用於二進制文件的NSFileHandle?
- 24. 用於Iphone二進制文件的NOP
- 25. 二進制分析研究工具
- 26. 在ELF或二進制文件中有特定ABI的簽名?
- 27. 虛擬內存中ELF二進制文件的佈局
- 28. 編輯ELF二進制調用指令
- 29. 修改二進制的ARMv7庫的ARMv6
- 30. 更改二進制文件