深入理解计算机系统(CSAPP)bomblab实验进阶之nuclearlab——详细题解
本实验是难度高于bomblab的一个补充实验,该实验部分题目难度已经达到CTF入门水平,且这个实验据说是上一届的某个学长原创,因此互联网上几乎找不到类似的题目。在间断地思考了几周后我最终完成了所有题目,并打算在这篇随笔里详细地给大家分享我的解题过程。核弹样本(可本地断网运行):https://wwi...
深入理解计算机系统第二版习题解答CSAPP 2.12
对于下面的值,写出变量x的C语言表达式。代码应该对任何字长w≥8都能工作。我们给出当x=0x87654321以及w=32时表达式的结果,仅供参考。A.x的最低有效字节,其他位均为0。[0x00000021]。B.除了x的最低有效字节外,其他位都取补,最低有效字节保持不变。[0x789ABC21]。C...
csapp lab2 bomb 二进制炸弹《深入理解计算机系统》
bomb炸弹实验 首先对bomb这个文件进行反汇编,得到一个1000+的汇编程序,看的头大。 phase_1: 0000000000400ef0 <phase_1>: 400ef0:48 83 ec 08 sub $0x8,%rsp 400ef4:be 1...
CSAPP深入理解计算机系统实验2-二进制炸弹(Windows版本)
CSAPP大名鼎鼎了,网上许多人都完成了其独具特色的实验,特别是二进制炸弹、缓冲区炸弹等。 二进制炸弹实验,主要锻炼学习者使用反汇编工具对二进制可执行程序调试、分析的能力。学习者首先需要使用调试器调试bomb可执行文件,对其进行反汇编分析,找出炸弹逻辑,并输入正确的密码,以便顺利拆...
《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游
本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习。一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止。我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念、专业术语和组成部分。@目录源程序是如何存储的源程序到可执行文件的过程shell是什么典型系统的硬件...
深入理解计算机系统第二版习题解答CSAPP 2.6
使用打印字节的方式可以知道十进制数12345的十六进制为0x00003039,十进制浮点数12345.0的十六进制为0x4640E400。转换为二进制为 /* 0 0 0 0 3 0 3 9 0000000000000000001 ...
深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_3)
本文接 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_2)继续往下写,意在记录本人在学习CSAPP的bomb程序炸弹实验中的探索过程和发现。 在Notepad++编辑器中找到函数phase_3,代码如下: 08048ea1 <phase_3>: 8048...
CSAPP 深入理解计算机系统课程实验 bomb实验 反向编译 汇编(4)
隐藏关卡。Secretphase 这个隐藏关卡还是很难发现的,自己带的班上的学生中,仅有3个学生发现并解除了炸弹。中间也出现了一些小小问题,在给他们验收的时候也有意识的去引导他们发现一些小问题,并讨论解决。 首先是隐藏关卡的发现,其实在汇编代码中就有一个secret_phase.就是看怎么跳到隐藏关...
深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_2)
本文接深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_1)继续写,记录对bomb程序炸弹实验phase_2函数部分的探索过程。 首先在Notepad++中查找到函数phase_2,代码如下: 08048d6a <phase_2>: 8048d6a:55 ...
深入理解计算机系统第二版习题解答CSAPP 2.18
将32位补码表示的数转换为10进制数。32位补码十进制0x1b80x140xFFFFFE58-4240xFFFFFE74-3960x440xFFFFFEC8-3120x100xC0xFFFFFEEC-2760x20...
深入理解计算机系统第二版习题解答CSAPP 2.11
在2.10中的inplace_swap函数的基础上,你决定写一段代码,实现将一个数组中的元素两端依次对调,你写出下面这个函数: void reverse_array(int a[], int cnt) { int first, last; for(first = , last = c...
深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_6)
本文接 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_5)写。关注bomb程序炸弹实验的最后一个关卡phase_6。 找到phase_6的代码,比前面几关都要长很多: 08048c89 <phase_6>: 8048c89:55 ...
深入理解计算机系统第二版习题解答CSAPP 2.8
给出位微量的布尔去处的求值结果。运算结果a0110 1001b0101 0101 ~a1001 0110~b1010 1010 a&b0100 0001a|b0111 1101a^b0011 1100
深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_1)
刚刚开始学习深入理解计算机系统(CSAPP)(原书第二版),初次接触到汇编语言,课程实验的第一个任务是二进制炸弹实验(bomb),书上的介绍是这样的:二进制炸弹是一个作为目标代码文件提供给学生的程序,运行时,它提示用户输入6个不同的字符串。如果其中的任何一个不正确,炸弹就会“爆炸”,打印出一条错误信...
深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_4)
本文接 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_3)继续写,phase_4部分在昨天已经完成了,日志在今天才开始写。个人认为这个部分是整个bomb程序炸弹最难破解的部分,在破解的过程中发现这是一个递归函数,体现在汇编语言中就显得特征不是那么明显,所以采用了一种将...
csapp lab2 bomb 二进制炸弹《深入理解计算机系统》
bomb炸弹实验 首先对bomb这个文件进行反汇编,得到一个1000+的汇编程序,看的头大。 phase_1: 0000000000400ef0 <phase_1>: 400ef0:48 83 ec 08 sub $0x8,%rsp 400ef4:be 1...
CSAPP深入理解计算机系统(第二版)第三章家庭作业答案
《深入理解计算机系统(第二版)》CSAPP 第三章 家庭作业这一章介绍了AT&T的汇编指令 比较重要 本人完成了《深入理解计算机系统(第二版)》(以下简称CSAPP)第三章的家庭作业,并与网上的一些答案进行了对比修正。感谢博主summerhust的整理,以下贴出AT&T常用汇编指令A...
深入理解计算机系统第二版习题解答CSAPP 2.20
T2Uw(w)=x, x≥0时T2Uw(w)=x+2w, x<0时利用上面的公式,重新计算2.19的问题。
深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_5)
本文接 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_4)写,已经坚持写了四个部分,最近把第五关破解了,发现这次的关卡是和数组相关的,接下来简单讲讲破解的过程。 在反汇编出来的代码中查找到函数phase_5,代码如下: 08048db8 <phase_5>...
读完了csapp(中文名:深入理解计算机系统)
上个星期最终把csapp看完了。 我买的是中文版的,由于除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里。如今看来,大概不能算是个长处,可是的确可以加快我的看书速度,否则一星期还真不大可能把这书搞定。对csapp慕名已久,主要在于据说这本书尽量的做到相对实用,不去讲那些和...