
CSAPP个人读书笔记
文章平均质量分 73
Anciety
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
64位和32位的寄存器和汇编的比较
64位寄存器分配的不同 区别有:64位有16个寄存器,32位只有8个。但是32位前8个都有不同的命名,分别是e _ ,而64位前8个使用了r代替e,也就是r _。e开头的寄存器命名依然可以直接运用于相应寄存器的低32位。而剩下的寄存器名则是从r8 - r15,其低位分别用d,w,b指定长度。32位使用栈帧来作为传递的参数的保存位置,而64位使用寄存器,分别用rdi,rsi,rdx,rcx,r原创 2016-04-29 00:49:12 · 36809 阅读 · 4 评论 -
ELF文件格式
sections (elf relocatable 文件)(重新定位前的elf文件) - .text:所编译文件的机器代码 - .rodata:read only data 只读数据,如printf函数中的格式化字符串以及switch语句的跳转表 - .data:初始化了的全局C变量。(本地变量在执行时在栈上存储,并且不出现在.data和.bss section) - .bss:未初原创 2016-05-06 23:19:23 · 735 阅读 · 0 评论 -
stack frame栈帧简介(逆向工程角度)
0x01 栈帧是什么“IA32 programs make use of the program stack to support procedure calls”. “IA32程序使用程序栈帧来支持子程序调用”(出自CSAPP,即《深入理解计算机系统》)个人理解,栈帧就是内存的一段数据,在内存栈区域,对子程序的数据进行一个临时保存。什么是栈?栈和堆类似,都是操作系统中分配给用原创 2016-04-28 15:29:47 · 3736 阅读 · 0 评论