我最近一直在使用匯編級編程,並且能夠使用nasm或as將彙編級代碼轉換爲機器級代碼,並從中提取十六進制代碼,但反向可能如何?我需要編寫二進制可執行文件,只給出十六進制。我需要將以下十六進制7a\x65\x00\x5f\x73\x74\x61\x72\x74\x00\x5f\x5f\x62\x73\x73\x5f\x73\x74\x61\x72\x74\x00\x5f\x65\x64\x61\x74\x61\x00\x5f\x65\x6e\x64\x00
轉換爲可執行文件,我該怎麼做?如何使用十六進制創建二進制可執行文件?
2
A
回答
2
爲:
.globl _start
_start:
.byte 0x7a,0x65,0x00,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x5f,0x62,0x73,0x73,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x65,0x64,0x61,0x74,0x61,0x00,0x5f,0x65,0x6e,0x64,0x00
GNU工具鏈命令
as a.s -o a.o
ld a.o -o a
編輯
花了更長的時間來鍵入此編輯不是做谷歌搜索
NASM語法:
global _start
_start:
db 0x7a,0x65,0x00,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x5f,0x62,0x73,0x73,0x5f,0x73,0x74,0x61,0x72,0x74,0x00,0x5f,0x65,0x64,0x61,0x74,0x61,0x00,0x5f,0x65,0x6e,0x64,0x00
+0
謝謝,這是非常有前途的,但有沒有辦法做到這一點nasm的方式。我看到你正在使用煤氣裝配工! – vikkyhacks
+0
我相信它是非常相似的,只需定義數據,但nasm想要什麼全球鏈接器變量global _start或類似的東西... –
1
你給的十六進制數據不是機器代碼,它是ASCII文本,更具體了一系列以空值終止字符串:
ze
_start
__bss_start
_edata
_end
如果你有一個包含原始機器代碼的文件,例如一個生產使用'nasm -f bin',可以使用nasm的incbin指令將其嵌入到程序集文件中。
說的代碼是在x.bin中。然後你生成一個這樣的存根:
section .text
global _start
_start:
incbin "x.bin"
和組裝和鏈接照常。
相關問題
- 1. 從二進制文件創建十六進制文本文件
- 2. 創建從十六進制二進制文件用C
- 3. 將十六進制轉換爲二進制到十六進制?
- 4. 使用sfk替換二進制文件中的十六進制
- 5. 十六進制,八進制,二進制到十進制(C++)
- 6. 二進制,八進制,十六進制到十進制程序
- 7. 如何打印十六進制的二進制文件?
- 8. 如何分析十六進制和二進制文件?
- 9. 如何將十六進制值寫入二進制文件
- 10. 使用十進制或十六進制
- 11. 十六進制到二進制轉換
- 12. 十六進制轉換爲二進制
- 13. Python二進制到多十六進制
- 14. 大十六進制到二進制
- 15. 轉換十六進制到二進制
- 16. 二進制到十六進制轉換
- 17. PHP十六進制和二進制
- 18. 十六進制轉換爲二進制
- 19. 如何使用C將二進制整數作爲十六進制寫入二進制文件中使用C
- 20. 將十進制轉換爲十六進制/二進制
- 21. 十六進制爲二進制和十進制在matlab中
- 22. 十進制/十六進制/二進制轉換
- 23. C#System.OverflowException二進制到十進制和十六進制轉換
- 24. 從它的十六進制表示創建二進制文件的副本
- 25. 如何使用C編輯二進制文件的十六進制值#
- 26. 十六進制串&十六進制
- 27. 將十進制轉換爲十六進制和十六進制
- 28. 從十六進制到十進制,二進制到十進制和八進制到十進制程序C++
- 29. Bitmasking - 何時使用十六進制與二進制
- 30. 如何使用二進制標準中的指針創建具有十六進制信息(如char)的文件?
你在寫什麼操作系統? Windows或Linux或其他平臺? – bloopletech
我使用的Ubuntu的,但我想保持與Windows和Linux與Linux具有更高優先級的討論 – vikkyhacks