E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
CSAPP深入理解计算机系统
CSAPP
-BOMB-LAB
这是2016版的bomb下载得到bomb.tar文件,解压后只有bomb二进制文件,以及一个bomb.c文件,bomb.c没有对应的头文件.所有思路只有是反汇编bomb,分析汇编代码.这里用到两个非常强大的工具objdump,gdb*objdump用来反汇编的,-d参数得到x86汇编,-M参数还可以选择不同的汇编形式,比如-M8086得到8086汇编,详细内容可以manobjdump.*gdb是强
mbinary
·
2024-01-14 14:55
csapp
csapp
bomb
gdb
【
深入理解计算机系统
】
CSAPP
-实验二:BombLab 2020最新详解
点击查看我的全部代码reference【施工完成】
CSAPP
bomblab【实战】手摸手教你BombLab答案BorderrelationswithCanadahaveneverbeenbetter.12481632020700ionefg
热爱学习的贾克斯
·
2024-01-14 14:55
笔记
反汇编
操作系统
CSAPP
- 反编译 initialize_bomb()
CSAPP
-保持好奇,反汇编initialize_bomb()相比于直接看bomblabphase_1的答案,我更想搞懂答案之外涉及的每个函数的反汇编-反正是一个实验,代码能复杂到哪里去?
baiyu33
·
2024-01-14 14:25
汇编
c语言
gdb
CSAPP
bomblab 作弊方式通关: gdb set 命令的使用
bomblab的博客、视频挺多的,但是步骤都太“友善”了。既然每次都是explode_bomb函数爆炸的,那么不执行这个函数不就完事儿了吗?这的确是“作弊”,但是我的目的不在于得到每一个phase的正确答案,而是希望每个phase随便输入,但是仍然能通关。一种方式是修改二进制文件bomb,我暂时不会。另一种方式,是在gdb运行期间,使用set命令修改callexplode_bomb汇编指令为nop
baiyu33
·
2024-01-14 14:25
汇编
gdb
c语言
CSAPP
- 流程化的人工反编译 string_length, strings_not_equal
文章目录反编译的流程string_length的反编译,第二次尝试strings_not_equal反编译,第二次尝试一些“定式”的整理定式1:cmp和je/jne定式2:testA,A和je/jne反编译的流程依然是
CSAPP
bomblabphase
baiyu33
·
2024-01-14 14:23
汇编
CSAPP
- bomblab phase_2 分析
CSAPP
-bomblabphase_2分析文章目录
CSAPP
-bomblabphase_2分析概要第一次反编译phase_2()反编译explode_bomb()反编译read_six_numbers
baiyu33
·
2024-01-14 07:53
汇编
c语言
调试
gdb
csapp
深入理解计算机系统
(2):信息的表示和处理
信息存储大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtualmemory)。内存的每个字节都由一个唯一的数字来标识,称为它的地址(address),所有可能地址的集合就称为虚拟地址空间(virtualaddressspace)。顾名思义,这个虚拟地址空间只是一个展现给机器级程序的
飞大圣
·
2024-01-14 01:43
计算机组成原理
系统架构
c++
CSAPP
: LinkBomb 重定位和链接题解(一)
前言我看了一下,网上关于LinkBomb的题解不是很多,LinkBomb不是
CSAPP
目前大纲的内容,大多数都是写的LinkLab。
涟幽516
·
2024-01-13 11:17
计算机系统基础
软件工程
学习方法
ubuntu
linux
CMU 15-213
CSAPP
(Ch1~Ch3)
视频链接课件链接该视频课程使用64位编译器!本文使用编译器从Ch.3.6开始换到64位,因此3.6之前地址为4字节,之后为8字节!Ch1.计算机系统漫游C编译(ccl)与链接(ld)Switch是否总时比if-else高效?while循环总比for循环高效么?指针引用比数组高效么?函数的本地临时变量为什么比入参的引用更高效?算数表达式的括号也能影响运算速度?Ch2.信息的表示和处理Integer–
菜=原罪
·
2024-01-12 01:30
操作系统
操作系统
CSAPP
IEEE 浮点数:存储及方式,学习与记录,总结与反思
本篇大部分参考小土刀的:【读薄
CSAPP
】壹数据表示一文。自己仅作摘录、整理和略微的总结。IEEE浮点数标准IEEE标准中,浮点数以如下公式表示:其中,s为符号位
全方位小白
·
2024-01-12 00:03
书单
持续添加1.MIT6.00.1x(计算机科学和Python编程导论)2019-1-2开始预计一个月2.HarvardCS50x(计算机科学)3.SICP(计算机程序的构造和解释)4.Java编程思想5.
CSAPP
suddennessMan
·
2024-01-11 18:03
【计算机组成与设计 硬件/软件接口-2】MIPS指令集架构
指令:计算机的语言引言所谓指令集,指的就是计算机的全部指令,这章节将以MIPS指令集作为学习对象,如果是x86指令集,还请参考《
深入理解计算机系统
》。
AndyZzz~
·
2024-01-11 08:56
计算机组成原理
CSAPP
阅读笔记-信息的表示和处理
信息的表示和处理包括整数、浮点数的存储格式、计算中可能存在的问题等信息存储大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtualmemory)。内存的每个字节都由一个唯一的数字来标识,称为它的地址(address),所有可能地址的集合就称为虚拟地址空间(virtualaddress
只想开始
·
2024-01-10 14:37
笔记
c++
麒麟、linux服务器安装nginx
1、切换目录到安装包tar-xvfnginx-1.24.0.tar.gz[root@e
csAPP
prod002~]#cd/app/nginx-1.24.0/2、配置安装到目录/app/nginx下,麒麟服务器需手动创建
code12313
·
2024-01-09 08:19
服务器
linux
网络
时钟周期和时钟频率
引自《
深入理解计算机系统
》处理器活动的顺序是由时钟控制的,时钟提供了某个频率的规律信号,通常用千兆赫兹(GHz),即十亿周期每秒来表示。
6ca1ee26e8c2
·
2024-01-09 01:13
操作系统第一课:CPU基础知识
相关书籍推荐读书的原则:不求甚解,观其大略《编码:隐匿在计算机软硬件背后的语言》《
深入理解计算机系统
》数据结构与算法《java数据结构与算法》《算法》《算法导论》《计算机程序设计艺术》操作系统:Linux
学而知不足~
·
2024-01-08 16:58
操作系统
操作系统
深入理解计算机系统
(1):开始
计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,它们又执行着相似的功能。计算机系统信息就是位+上下文//hello.c#includeintmain({printf("hello,world\n");return0;}hello程序的生命周期是从一个源程序(或者说源文件)开
飞大圣
·
2024-01-07 07:45
计算机系统
系统架构
架构
五 Shell Lab
一步一步教你写SHELL这个LAB是上完CMU
CSAPP
的14-15LECTURE之后,就可以做了。
csapp
课程观看地址:https://search.bilibili.com/all?
西部小笼包
·
2024-01-06 22:04
HIT
CSAPP
期末大作业
计算机系统大作业题目程序人生-Hello’sP2P专业计算机科学与技术学号班级学生指导教师计算机科学与技术学院2023年4月摘要一个看似简单的程序hello,实际上在计算机中经历了复杂的生命周期。本文将跟踪hello的生命周期,剖析其从预处理、编译、汇编、链接生成可执行文件到在系统上运行,最后运行完毕被回收的过程。这个过程将揭示计算机系统的奇妙之处,借此加深对计算机系统的理解。关键词:计算机系统;
飞飞_123
·
2024-01-05 13:38
课程设计
linux
ubuntu
OSTEP《操作系统导论》万字 精华学习笔记-第一部分:虚拟化
(重点部分加粗)前段时间学习过《
深入理解计算机系统
》(
CSAPP
)和《计算机组成与设计:硬件软件接口RISC-V》学习完这本书算是对于之前的一点点补充,一些概念理解的更加深刻了。
yruluvme
·
2024-01-01 21:55
OS:
TEP《操作系统导论》
学习
笔记
驱动开发
linux
unix
CSapp
这里写自定义目录标题
csapp
第7章链接7.1编译器驱动程序7.4可重定位目标文件7.5符号和符号表7.6符号解析7.6.1链接器如何解析多重定义的全局符号7.6.2与静态库链接7.6.3链接器怎么用静态库来解析引用
ruanjianxueyuan113
·
2024-01-01 07:53
C++
服务器
CSAPP
存储器层次结构
一、存储技术作为一名程序员,需要理解存储器的层次结构,因为它对应用程序的性能有着巨大的影响。因为与下一层次的存储设备相比来说,一个编写良好的程序会更频繁的访问某一层次上的存储设备。这里就是计算机系统中的一个基本而持久的思想,如果你理解系统是如何将数据在存储器层次结构中上上下下移动的,你就可以编写自己的应用程序,使得它们的数据存储在数据层次较高的地方,CPU可以更快的访问到它们。这个思想围绕计算机程
王加冰
·
2023-12-31 17:45
《
深入理解计算机系统
》(
CSAPP
)读书笔记 —— 第五章 优化程序性能
写程序最主要的目标就是使它在所有可能的情况下都正确工作。一个运行得很快但是给出错误结果的程序没有任何用处。程序员必须写出清晰简洁的代码,这样做不仅是为了自己能够看懂代码,也是为了在检査代码和今后需要修改代码时,其他人能够读懂和理解代码。另一方面,在很多情况下,让程序运行得快也是一个重要的考虑因素。本章主要介绍了循环展开,减小过程调用,消除不必要的内存引用等优化代码的方法,有助于我们写出高效的代码,
3561cc5dc1b0
·
2023-12-31 05:53
无法在wsl子系统下正确运行
csapp
实验1datalab的实验程序
按照手册指引make然后./fshow然后就cannotexecutebinaryfile:Execformaterror发现所有可执行文件均无法执行,搜索一下该错误,多与在32位系统下运行64位程序有关。然而本机与系统均是64位,可能需要安装相关支持。搜索ubuntu18.04安装32位支持环境安装相关依赖,无效。考虑wsl的问题。解决方案转载自https://blog.csdn.net/she
Zparkle
·
2023-12-30 06:20
《
深入理解计算机系统
》(美)布赖恩特(Bryant,R.E.) 等
书籍:《
深入理解计算机系统
》(美)布赖恩特(Bryant,R.E.)等适合对象:对计算机感兴趣的朋友。需要相关资料的可私信我。2023.09.20更新完成。
xiaoxiao无脸男
·
2023-12-27 17:07
linux
windows
【2024考研】哈工大计算机考研854会改成408吗?优缺点分析?怎么复习?哈工大卓越工程师学院点击就送吗?
5.1计算机系统(
CSAPP
)复习指导5.2计算机网络复习指导5.3数据结构与算法复习指导6.总结本文首次发布于2022年3月,最近更新于2023年4月,由于考研形势变化太快,故内容不具未来时效性
早睡身体好呀
·
2023-12-27 15:36
考研
考研
哈尔滨工业大学
计算机
408
854
深入理解计算机系统
第三章练习题
习题3.1地址值0x1000xFF0x1040xAB0x1080x130x10C0x11寄存器值%rax0x100%rcx0x1%rdx0x3%rax0x100寄存器寻址0x1040xAB绝对寻址rcx0xFC(,%rcx,4)0xFC+40x1=0xF11错,应该为M(0xFC+0x4)=M(0x100)即内存地址0x100的值为0xFF(%rax,%rdx,4)0x100+40x3=0x10C
麻风剑客
·
2023-12-27 03:40
【
csapp
】bufferlab
文章目录实验要求实验内容Level0Level1Level2Level3Level4实验要求Level0test运行完后,不直接返回退出,而是跳到smoke函数处,继续运行,当smoke运行完毕后退出Level1在Level0的基础上,使getbuf函数的返回指向fizz函数,同时将fizz函数的参数置为userid对应的cookie值Level2使getbuf调用后不执行test函数,而是执行b
LeePlace
·
2023-12-26 16:20
随想随写
linux
【
csapp
】cachelab
文章目录PartAPartB32*3264*6461*67实验全程参考大佬的博客CS:APP3e
深入理解计算机系统
_3eCacheLab实验,感觉大佬在矩阵转置那块介绍的还是有些简略,我自己又做了点动图加以补充理解
LeePlace
·
2023-12-26 16:18
随想随写
linux
缓存
ubuntu
CSAPP
学习笔记-缓冲区溢出(AttackLab前言)
缓冲区溢出向程序缓冲区写入超出其长度的内容,造成缓冲区溢出,造成程序破坏以执行其他程序,达到攻击目的导致溢出的函数:strcpy()、strcat(),sprintf(),vsprintf(),gets(),scanf()通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令(获得root权限)1在地址空间安排代码2初始化寄存器和内存,让程序跳转到想要的位置ctarget-代
prician
·
2023-12-25 14:28
CSAPP
操作系统
学习
笔记
linux
CSAPP
:BombLab 详细解析
BombLab来自《
深入理解计算机系统
》(
CSAPP
)一书的第三章的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而能够正确破解”密码“,解除“炸弹”。
prician
·
2023-12-25 14:27
CSAPP
汇编
linux
visual
studio
code
docker
macos
CSAPP
:DataLab详细解析
做题的时候看了好多博客,一点一点更深入的了解、学习。不得不说lab真的很好,学到很多。做题准备我已经在上一个博客提到了,建议写之前看一下README。1.bitXor运用~和&实现x^y这里可以用一个真值表xyx^y000011101110我们可以得到但由于题目要求不可以运用“或运算”,所以这时候要用到德摩根定律非(P且Q)=(非P)或(非Q)非(P或Q)=(非P)且(非Q)可以得到即可得出本题答
prician
·
2023-12-25 14:57
CSAPP
经验分享
Quickly Design and Build Real
QuicklyDesignandBuildRealInfragisti
csApp
Buildereliminatesthecomplexityofuserinterfacedesignanddevelopmentsoyoucanbuildbusinessappsfasterthanever.Infragisti
csApp
Builderisanewcloud-basedtoolthathelpsdes
SEO-狼术
·
2023-12-25 09:05
net
Crack
Delphi
后端
CSAPP
/ICS 系统级IO笔记
文件描述符:内核(kernel)利用文件描述符(filedescriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。每一个文件描述符会与一个打开文件相对应。系统为每一个进程维护了一个文件描述符表,该表的值都是从0开始的,所以在不同的进程中你会看到相同的文件描述符,这种情况下相同文件描述符有可能指向同一个
吉祥如意_
·
2023-12-24 18:15
笔记
linux
运维
深入理解计算机系统
——第三章
计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列的阶段生成机器代码。在整个编译过程中,编译器会完成大部分的工作,将把用C语言提供的相对比较抽象的执行模型表示的程序转化成处理器执行的非常基本的指令。程序内存包含:程序的可执行机器代码,操作系统需要的一些信息,用来管理
邓超_ef13
·
2023-12-23 21:17
《
深入理解计算机系统
》学习笔记 - 第七课 - 机器级别的程序三
Lecture07MachineLevelProgrammingIIIProcedures机器级别的程序三文章目录Lecture07MachineLevelProgrammingIIIProcedures机器级别的程序三概述程序机制栈结构栈说明栈定义推入数据弹出数据调用控制代码示例程序控制流程%rip传递数据ABI标准示例管理局部数据基于堆栈的语言栈帧函数递归调用示例linux栈帧示例寄存器保存数
北海拾贝
·
2023-12-23 12:19
计算机系统原理
计算机系统原理
《
深入理解计算机系统
》Part1 准备工作:在VirtualBox 中建立虚拟机
摘要:本文主要介绍了如何在Windows系统上安装VirtualBox,并使用VirtualBox安装Centos7,同时介绍如何安装VirtualBox的增强功能。关键词:VirtualBox;Windows10;Centos7;增强功能1.虚拟工具选择虚拟工具有两种选择(a)VMwareWorkstationPro(b)VirtualBox,前者是商业软件后者是开源软件。VMwareWorks
fengjb
·
2023-12-22 02:25
深入理解计算机系统
第一章
第一章计算机系统漫游1.1信息就是位+上下文系统中的所有信息,包括磁盘文件,内存中的程序,内存中存放的用户数据以及网络上传送的数据,都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象的上下文。1.2程序被其他程序翻译成不同格式一个程序的生命周期是从一个高级C语言程序开始的,为了能在系统上运行该程序,每条语句都必须被其他程序转换成一系列低级机器语言,然后这些指令按照可执行目标程序
宪章文武
·
2023-12-21 22:00
《
深入理解计算机系统
》学习笔记 - 第二课 - 位,字节和整型
Lecture02Bits,Bytes,andInteger位,字节和整型Byte字节位操作布尔代数集合的表现形式和操作C语言的逻辑操作位移操作整型数值范围无符号与有符号数值无符号与有符号在C中拓展和截断拓展截取《
深入理解计算机系统
北海拾贝
·
2023-12-20 23:28
计算机系统原理
计算机系统原理
《
深入理解计算机系统
》学习笔记 - 第三课 - 位,字节和整型
Lecture03Bits,Bytes,andIntegercount位,字节,整型文章目录Lecture03Bits,Bytes,andIntegercount位,字节,整型运算:加,减,乘,除加法乘法取值范围乘法结果使用无符号注意事项内存中的表现形式面向字节的内存组织形式字长Words字节顺序大端序和小端序代码检验数据的表现形式字符串表示拓展二进制的一个属性汇编编码乘积编码除法编码无符号除法编
北海拾贝
·
2023-12-20 23:28
计算机系统原理
计算机系统原理
《
深入理解计算机系统
》学习笔记 - 第四课 - 浮点数
浮点数分数二进制示例能代表的数浮点数的表示方式浮点数编码规格化值规格化值编码示例非规格化的值特殊值示例IEEE编码的一些特殊属性四舍五入,相加,相乘四舍五入四舍五入的模式二进制数的四舍五入浮点数乘积浮点数加法浮点数的一些数学性质浮点数在C中类型转换的比较《
深入理解计算机系统
北海拾贝
·
2023-12-20 23:28
计算机系统原理
计算机系统原理
《
深入理解计算机系统
》学习笔记 - 第六课 - 机器级别的程序二
Lecture06MachineLevelProgrammingIIControl机器级别程序控制二文章目录Lecture06MachineLevelProgrammingIIControl机器级别程序控制二处理器的状态条件码(隐式设置)通过算术运算隐式设置条件码(将其视为副作用)通过cmp比较命令显示的设置条件码通过test命令显示的设置条件码读取条件码SetX指令跳转指令jump条件分支示例(
北海拾贝
·
2023-12-20 23:57
计算机系统原理
计算机系统原理
西工大计院计算机系统基础实验三前三关
作者在写作本文时,一方面参考了计院和网安院所给的实验三的PPT,另一方面参考了
CSAPP
官网的实验部分的bufferlab实验的buflab32.pdf这份pdf文件。
没耳朵的Rabbit
·
2023-12-20 15:41
linux
运维
ubuntu
服务器
《
深入理解计算机系统
》Data Lab 实验
第1关:bitXor任务描述本关任务:bitXor-x^yusingonly~and&仅用运算符~和&实现计算x^yExample:bitXor(4,5)=1例如:bitXor(4,5)=10100^01010001Legalops:~&合法运算符为:~&Maxops:14最多可以使用运算符:14个Rating:1难度系数:1测试说明平台会对你编写的代码进行测试:开始你的任务吧,祝你成功!intb
Ssaty.
·
2023-12-20 05:36
Educoder实训
深度优先
算法
HIT-
CSAPP
程序人生 大作业
摘要本文围绕经典的Hello程序,详细阐明了它在Linux操作系统环境下的完整生命周期。从源代码hello.c文件开始,我们跟踪分析了它经历的预处理、编译、汇编、链接,一直到最终执行和结束终止的全过程。同时,我们结合操作系统课程中学习的知识,详细解释了Linux系统如何对Hello程序实施管理和控制。在进程管理方面,系统如何创建、调度和终止Hello程序进程。在存储管理方面,系统如何为Hello程
子钺1023
·
2023-12-18 21:53
linux
ubuntu
运维
CSAPP
: BombLab 拆炸弹谜题题解(x86 环境)
【写在前面】这是一个仍然需要修改和更新的
CSAPP
:BombLab的解题教程,如果读者需要直接的通关技巧,那么,本篇可能不是太适合你,我会在后期更新简化的通关(新手操作)教程。
涟幽516
·
2023-12-18 20:20
计算机系统基础
ubuntu
linux
软件工程
学习方法
HIT
CSAPP
大作业:程序人生 hello‘s P2P
第1章概述1.1Hello简介程序员在文本编辑器中写下hello的C语言源代码,得到了hello的源文件hello.c。之后它被预处理、编译、汇编、链接后,得到了可执行文件hello。在终端运行hello,bash会替程序员运行hello,在shell中fork一个子进程并execvehello,随后hello被加载,正式开始运行。在运行过程中可以对其进行各种操作,包括使用Ctrl+C,Ctrl+
1190202211
·
2023-12-18 20:49
【
CSAPP
】Lab0 - 环境配置
文章目录一、前言二、虚拟机新建Linux环境三、下载lab文件四、下载相关工具五、如何做Lab?一、前言实验需要在linux环境下进行,而我的系统是window10。好多文章建议使用docker构建linux环境,但是windows系统下配置docker会出现一些问题,所以我选择用虚拟机安装linux环境。二、虚拟机新建Linux环境下载Ubuntu镜像,我选择的版本是Ubuntu20.04。在V
Luqwera
·
2023-12-18 14:53
#
CMU15-413
CSAPP-Lab
Lab
《
深入理解计算机系统
》(原书第三版)笔记<一>
一、计算机系统漫游1.1信息就是位+上下文位/比特:0和1字节:8位一组系统上所有信息(磁盘文件、内存中的程序、内存的数据、网络传送的数据)都是一串比特表示。根据数据对象的上下文区分不同数据。1.2程序被其他程序翻译成不同的格式源文件—编译器驱动程序—>目标文件预处理阶段:cpp根据#开头的命令修改原始的C程序。编译阶段:col翻译成汇编语言程序。汇编阶段:as翻译位机器语言指令,打包指令成可重定
Wakkaa
·
2023-12-17 20:53
程序人生-哈工大计算机系统大作业2022春
并且根据
CSAPP
所学内容,分析了计算机对hello程序进行进程管理,存储管理,IO管理的过程。通过
沉默笙箫~
·
2023-12-17 14:51
c语言
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他