随笔分类 - 计算机理论
计算机组成、os、体系结构、db等等
摘要:在做完lab2的时候,回去看了课本的第三章,最后一部分讲了一下栈溢出导致的代码漏洞会被如何利用,以及如何防止这种安全问题,当时就在想原来代码攻击是这样的,有空要自己实践一下。打开lab3发现原来就是我想要的,兴趣一下就来了 1. 预备知识 C语言的空间管理 1.栈区(stack): 由编译器自动分配
阅读全文
摘要:1. 实验内容 包含一个二进制应用bomb,需要根据该应用猜测程序的运行过程。程序主体包含了六个函数phase_1到phase_6,每个函数会根据用户的输入做出反应,当输入符合要求时,会炸弹拆解成功,进入到下一步,否则炸弹爆炸,打印"Boom!!!"并退出 2. 预置知识 二进制程序反汇编:objd
阅读全文
摘要:1. 数据的编码与存储 数据类型编码 x86-64寄存器 Note 寄存器可以分为4组: 函数参数寄存器:rdi rsi rdx rcx r8 r9。这六个寄存器用于传递函数的参数,如果多于6个参数,需要在栈上申请空间,算在被调用函数的栈帧中 函数返回值寄存器:rax。返回函数的结果,当然也可以将存
阅读全文
摘要:信息存储 十六进制表示法 (略) 字数据大小 大多数计算机使用8bit的块(字节)作为最小的可寻址的内存单元 字长指明了指针数据的标称大小(?) 64位系统和32位系统向后兼容 C语言中有些数据类型的具体大小依赖于程序的编译,C99引入int32_t和int64_t类型,指明数据的长度 C标准对不同
阅读全文

浙公网安备 33010602011771号