Binary 我能直接用二进制写程序吗?如何让计算机执行它?

Binary 我能直接用二进制写程序吗?如何让计算机执行它?,binary,Binary,我知道这可能看起来很奇怪,寻找麻烦,但我认为体验古代程序员以前的经历是很有趣的。那么,我如何执行一个仅用二进制编写的程序呢?(假设我知道自己在做什么,当然不使用汇编。) 我只想写一系列位,比如111010111010101010101,然后执行它。那我该怎么做呢?使用十六进制编辑器。当然,您需要找出操作系统的相关可执行文件格式——假设您想使用操作系统。。。我想如果你想得到所有的硬核,你可以编写你自己的引导程序,然后直接运行代码 我不认为你会真正体验到程序员当时的体验——一方面,你不会使用穿孔卡片

我知道这可能看起来很奇怪,寻找麻烦,但我认为体验古代程序员以前的经历是很有趣的。那么,我如何执行一个仅用二进制编写的程序呢?(假设我知道自己在做什么,当然不使用汇编。)


我只想写一系列位,比如
111010111010101010101
,然后执行它。那我该怎么做呢?

使用十六进制编辑器。当然,您需要找出操作系统的相关可执行文件格式——假设您想使用操作系统。。。我想如果你想得到所有的硬核,你可以编写你自己的引导程序,然后直接运行代码


我不认为你会真正体验到程序员当时的体验——一方面,你不会使用穿孔卡片、纸带等。另一方面,你的环境完全不同——你知道现在的计算机是什么样子的,所以对你来说,它会让你感到痛苦的原始。。。而在当时,正是基于这些原因,它才是最前沿和令人兴奋的。

使用十六进制编辑器创建文件,确保使用各自操作系统的加载程序能够理解的格式,然后双击它。

使用十六进制编辑器,写入位并将其保存为可执行文件(在Windows中仅使用文件扩展名
.exe
,在Linux中使用
chmod a+x filename

问题是:您还必须以二进制格式编写所有特定于操作系统的内容,并且必须有一个从汇编代码转换为二进制内容的表


如果你想体验低级编程,不妨试试D.E.Knuth的汇编程序MMIX?

这实际上取决于你使用的平台。但这与你提出的目的有点无关。你认为现代计算机的最早程序员不是用二进制编程的——他们是用汇编编程的

如果您试图使用十六进制编辑器为特定操作系统和特定CPU类型编写二进制程序,您将一无所获

如果您想了解预装配程序员是如何工作的(使用纯二进制数据),请查阅


.

或者他只是在写一些恶意代码。 我见过一些有趣的方法,它们使用AVR作为键盘仿真器,打开一些简单的文本编辑器,编写AVR eeprom内存中的代码,然后通过管道将其“调试”(在windows系统中)并运行。这也是摆脱一些限制的好方法;)


大多数汇编程序(例如MMIX汇编程序,请参见www.MMIX.cs.hm.edu)并不关心 你写指令或数据

所以与其说是威丁

Main ADD $0,$0,3 SUB $1,$0,4 ... 主添加$0,$0,3 低于$1,$0,4 ... 你可以写

Main TETRA #21000003 TETRA #25010004 ... 主要TETRA#21000003 TETRA#25010004 ... 因此,通过这种方式,您可以手工组装程序,然后让汇编器将其转换为加载程序所需的形式。然后你执行它。通常使用十六进制符号而不是二进制符号,因为很难跟踪这么多的数字。您也可以使用十进制,但告诉您哪些指令有哪些代码的图表通常使用十六进制表示法

祝你好运!当我开始编写计算机程序时,我不得不这样做。当时每个人都很高兴有一个汇编程序,甚至是一个编译器。
马丁

我认为,通过直接与硬件交互,您可以用二进制编写。要翻转正确的二进制位,可以在磁盘驱动器上使用磁化针。或者蝴蝶


您将无法执行
111010111010101010101
。第二位有语法错误。;)我认为你不能使用一些编程语言和编译器,或者编写一个批处理文件。一个十六进制编辑器就可以了。但不会有任何舒适的选择。。。在汇编中编程已经是一件很糟糕的事情,没有助记符也很有趣。用这种方式编写软件或学习用这种方式编写软件没有任何价值。@meagar,除了直接与计算机中可能级别最低的部件进行交互之外,这很有趣。我的意思是,你可能会争辩说,编写引导加载程序/内核代码没有意义,因为已经存在完美的代码。但有一点,那就是学习。不管它在现实生活中会产生多大的影响,这都是一次很好的学习经历。例如,我编写了一种编程语言,这样它的语法可能比Lisp更糟糕,并且我获得了关于解释器的广泛知识。这一切都是为了获取知识。用晶体管和开关编程怎么样?用磁盘上的磁化针编程怎么样?写恶意代码没有错,只要你只在自己或其他愿意写的主题上尝试。我不是安全专家,但我很确定这是一种值得鼓励的方法,可以了解哪些糟糕的编程和项目管理选择会导致潜在的漏洞利用。如果你不知道(至少在理论上)如何利用事物,你就无法阻止利用。