Assembly 有二进制程序的应用程序吗?

Assembly 有二进制程序的应用程序吗?,assembly,binary,Assembly,Binary,有些人声称他们可以用二进制编程。在当今世界,在现代系统上用二进制编程有可能吗?显然,用二进制编程没有多大好处。我要问的问题是这是否真的可能 早在计算机的早期,就有类似的穿孔卡片。穿孔转换成电信号。穿孔卡是一种将命令(可以说是一种数据)存储到介质上的方法。今天,我们有可以存储数据的媒体,如磁带、软盘、CD、DVD、硬盘等等。唯一的问题是:这些东西没有可以在二进制中表示“0”或“1”的“洞”。他们有其他的存储数据的方式,而这些方式不容易被人类访问。我们不能简单地用今天的媒体“切断”命令 综上所述,是

有些人声称他们可以用二进制编程。在当今世界,在现代系统上用二进制编程有可能吗?显然,用二进制编程没有多大好处。我要问的问题是这是否真的可能

早在计算机的早期,就有类似的穿孔卡片。穿孔转换成电信号。穿孔卡是一种将命令(可以说是一种数据)存储到介质上的方法。今天,我们有可以存储数据的媒体,如磁带、软盘、CD、DVD、硬盘等等。唯一的问题是:这些东西没有可以在二进制中表示“0”或“1”的“洞”。他们有其他的存储数据的方式,而这些方式不容易被人类访问。我们不能简单地用今天的媒体“切断”命令


综上所述,是否存在这样的应用程序:一个人可以键入ASCII字符“1”或“0”,并将其实际转换为电信号1或0(分别)?在这个时代用二进制编程是可能的吗?

您可以只使用十六进制编辑器编写EXE文件。那将是用二进制编程——你甚至不用汇编

您甚至可以略过EXE文件结构的复杂性,只需“作弊”,编写一个包含“二进制编程”工作的字节数组的C程序,然后执行该指针

const unsigned char *binary_program = {
    // Your binary programming goes here.
    0xaa, 0xbb, 0xff,
};

typedef void (*func_type)(); 


int main() {
    func_type func = (func_type) binary_program;
    func();
    return 0; 
}

用二进制语言编程是愚蠢的,因为它会非常慢

您需要在一本书中使用查找表来记住所有命令,这些命令将由pooter存储为十六进制字节

Assembly会自动为您完成所有这些,极大地简化了流程

你写:cmp-ecx,edx

十六进制是3B CA

二进制是什么

然后,您必须“读取”二进制列,以便进行任何调试

00001000011000100011110000101

00000111000100011110000010100110


祝走这条路的人好运,lol

即使现在人们用“二进制”编程,也会用十六进制,而不是0和1。你为什么要这样做?程序集级别足够了。真正的程序员使用copy con>t.exe:)COM文件会更传统。COM文件在现代32位或64位Windows中是头等公民吗?无论如何,我只是举个例子。你可以说为Linux编写ELF文件,或者为ARM编写其他文件。不,它不是一流的公民,你确实可以用十六进制编辑器编写任何一个文件。我想我只是说,如果一个人开始尝试用一个十六进制编辑器编写一个应用程序,COM文件将更容易编写,因为它基本上都是没有标题或强制结构的代码。一种方法是稍微作弊,然后创建一个C程序,其中有一个指向包含“二进制编程”的努力,然后执行该指针。然后C编译器将处理所有的EXE文件结构。另一种作弊的方法是在一个节中使用带有
incbin
或类似指令的汇编程序。它将把文件的原始内容包含到EXE中,但会为您处理所有的头等等。