-7

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

早在计算的早期,就有用于这类事情的打孔卡。冲孔转化为电信号。打孔卡是一种将命令(可以说是一种数据)存储到介质上的方式。今天,我们拥有可以存储数据的介质,例如磁带、软盘、CD、DVD、硬盘驱动器等。唯一的问题:这些东西没有“洞”,我们可以用它来表示二进制的“0”或“1”。他们还有其他存储数据的方法,这些方法不容易被人类访问。我们不能简单地用今天的媒体“删减”命令。

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

4

2 回答 2

2

您可以仅使用十六进制编辑器编写 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; 
}
于 2013-05-18T06:48:20.783 回答
0

用二进制编程会很愚蠢,因为它会非常慢

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

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

你写: cmp ecx,edx

十六进制是 3B CA

二进制是?

然后你必须“读取”二进制列才能进行任何调试......

00001000001110001000111100000101

00000111000100011110000010100110

ETC

祝走这条路的人好运,哈哈

于 2013-05-18T08:29:30.450 回答