我最近一直在使用汇编级编程,并且能够使用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