有些人声称他们可以用二进制编程。是否有可能在当今世界的现代系统上以二进制编程?显然,二进制编程没有多大好处。我问的问题是它是否真的可行。
早在计算机的早期阶段就有这样的打卡。冲孔转化为电信号。打卡是一种将命令(一种数据,你可以说)存储到介质上的方法。我们今天有媒体可以存储数据,例如磁带,软盘,CD,DVD,硬盘等。唯一的问题是:那些东西没有“漏洞”,我们可以用二进制表示“0”或“1”。他们还有其他存储数据的方法,这些方法不容易被人类访问。我们不能简单地用今天的媒体“剪掉”命令。
总而言之,是否存在一个人可以输入ASCII字符“1”或“0”的应用程序并将其实际转换为电信号1或0(分别)?在这个时代可以用二进制编程吗?
答案 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
等
祝所有走这条路的人好运,哈哈