是否有应用程序以二进制编程?

时间:2013-05-18 06:46:10

标签: assembly binary

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

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

总而言之,是否存在一个人可以输入ASCII字符“1”或“0”的应用程序并将其实际转换为电信号1或0(分别)?在这个时代可以用二进制编程吗?

2 个答案:

答案 0 :(得分: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; 
}

答案 1 :(得分:0)

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

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

程序集会自动为您完成所有这些操作,极大地简化了过程

你写的:cmp ecx,edx

十六进制是3B CA

二进制文件是?

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

00001000001110001000111100000101

00000111000100011110000010100110

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