首页 > 代码库 > 20145301 《信息安全系统设计基础》第5周学习总结
20145301 《信息安全系统设计基础》第5周学习总结
-
X86 寻址方式经历三代:
- 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全
- 2 8086的分段模式
- 3 IA32的带保护模式的平坦模式
- CPU包含一组8个存储32位值的寄存器
- 存整数数据和指针:eax,ecx,edx,ebx,esi,edi,esp,ebp。
- 大多数情况下前六个都用作通用寄存器,eax,ecx,edx的存储和恢复惯例不同于ebx,edi,esi(前三者为被调用者保存,后三者为调用者保存)。最后两个用于存储指针,由于在过处理中非常重要,分别指向栈帧的顶部和底部,必须保持。
-
gcc -S xxx.c -o xxx.s 获得汇编代码,也可以用objdump -d xxx 反汇编
-
注意: 64位机器上想要得到32代码:gcc -m32 -S xxx.c
Ubuntu中 gcc -S code.c (不带-O1) 产生的代码更接近教材中代码(删除"."开头的语句) -
二进制文件可以用od 命令查看,也可以用gdb的x命令查看。 有些输出内容过多
-
当一个源文件生成了‘.o‘的目标二进制文件后,无法直接查看。
-
但是还是有个查看目标代码文件内容的方法,就是对‘.o‘目标文件使用反汇编器。它的输出还是二进制文件,但是,反汇编器将这些二进制按照指令进行了分段。让我们知道哪一段是一个指令(格式上与汇编器产生的汇编文件一样,分行的)
20145301 《信息安全系统设计基础》第5周学习总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。