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】
linux编码格式修改
:exportLC_ALL=“zh_CN.UTF-8”exportLANG=“zh_CN.UTF-8”(4)使文件生效source/etc/profile2、局部修改(普通用户下的修改)(1)登录ua
csapp
小僵123456
·
2024-09-10 16:59
linux
linux
运维
服务器
CSAPP
全书学习总结
CSAPP
(1.计算机系统漫游)学习笔记-CSDN博客
CSAPP
(第二章信息的表示和处理,附上datalab解析_datalab调整数据位置-CSDN博客
CSAPP
(第三章:程序的机器级表示-CSDN博客
%d%d2
·
2024-08-30 13:46
体系结构
学习
CSAPP
二进制炸弹实验
知识点汇编语言基础GDB和OBJDUMP工具的使用实验环境Centos7x86_64获取二进制炸弹首先从
CSAPP
官网获取二进制炸弹bomb.tar:http://
csapp
.cs.cmu.edu/3e
pcj_888
·
2024-08-25 18:38
CSAPP
lab
Linux
CSAPP
Csapp
-chapter3-压栈和弹栈
bp与sp(压栈和弹栈)在计算机内部的寄存器组中,有一对寄存器非常有意思:%ebp,%esp文章目录bp与sp(压栈和弹栈)寄存器组示例图%ebp与%esp总结寄存器组示例图首先我们应该对于计算机中的寄存器组有一个逻辑的认知:以X86_64为例对其中的通用寄存器组做出了逻辑图示如下链接:X86_64寄存器组图示%ebp与%esp这个寄存器叫做堆栈基址寄存器,被调用者保存,而其保存的内容则是调用者的
味堡o_0
·
2024-02-11 14:46
csapp
汇编
学习方法
笔记
csapp
-chapter3--mov指令
数据传送mov汇编mov精要文章目录数据传送`mov``汇编mov精要`mov的后缀操作数指示符`movq`与`movabsq``MOVZ`和`MOVS`mov的后缀mov指令根据操作的数据size不同,具有不同的后缀指示movb(传送字节)movw(传送字)movl(传送双字)movq(传送四字)C声明Intel数据类型汇编代码后缀大小(byte)char字节b1short字w2int双字l4l
味堡o_0
·
2024-02-10 00:36
csapp
汇编
学习方法
csapp
大作业
计算机系统大作业题目程序人生-Hello’sP2P专业计算机类学 号1180100406班 级1903006学生袁文宇 指导教师史先俊 计算机科学与技术学院2021年5月摘要本文重点关注hello.c从c语言程序到可执行目标文件hello的转换过程,及可执行目标文件hello作为进程运行的过程。本文旨在通过了解hello进程的诞生,以及从诞生到执行结束后被回收的全过程,分析理解计算机系统
Pht_ywy
·
2024-02-08 06:00
csapp
大作业
计算机科学与技术学院2022年5月摘要本文通过运用所学的
csapp
知识分析hello程序从源代码到程序,从程序到进程的一生,加深巩固对
csapp
课程和计算机系统的认知,并熟练掌握相应技能.关键词计算机系统
木山的鹿
·
2024-02-08 06:27
p2p
gnu
蓝桥杯
CSAPP
大作业
摘要通过hello程序在Linux系统下走完它平凡却又伟大的一生,探讨hello源程序的预处理、编译、汇编、链接、生成可执行文件并运行的主要过程。同时说明系统是如何实现对hello程序进行进程管理,存储管理和I/O管理。关键词:预处理;编译;汇编;链接;进程;存储;I/0;目录第1章概述1.1Hello简介1.2环境与工具1.3中间结果1.4本章小结第2章预处理2.1预处理的概念与作用2.2在Ub
海盗船长1256
·
2024-02-08 05:23
linux
ubuntu
bash
CSAPP
大作业程序人生
专业计算学部学号班级学生指导教师吴锐计算机科学与技术学院2022年5月摘要本文通过分析一个简单地hello程序,通过分析其预处理,编译,汇编,链接,进程,内存管理,I/O管理几大模块,即分析了hello的从编译到执行结束输出的过程,又将
CSAPP
kbforever8
·
2024-02-08 05:46
ubuntu
linux
CSAPP
学习笔记
多年以后,面对镜子前那个秃头的人,我仍会想起第一次拿起《
CSAPP
》的那个神奇的下午……目录第一部分程序结构和执行第2章信息的表示和处理(HBD)第3章程序的机器级表示3.0概述引入3.1数据格式、寄存器
Greener Pat
·
2024-02-08 03:37
学习
笔记
CSAPP
第六章存储层次结构:存储技术(SRAM和DRAM)
随机存取内存(RAM):静态(SRAM)和动态(DRAM)。静态(SRAM)(1)静态RAM(SRAM)比动态RAM(DRAM)更快更贵。(2)SRAM用于寄存器和高速缓存;DRAM用于主存。系统最多只有几兆字节的SRAM,但却有几百或几千兆字节的DRAM。静态RAM双稳态的特性:静态RAM的电路能够无限期地保持在两种不同的电压配置中。任何其他状态都将不稳定—从那个状态开始,电路将迅速移动到其中一
暮色_年华
·
2024-02-07 03:47
计算机组成原理
单片机
嵌入式硬件
【目录】
CSAPP
的实验简介与解法总结(已包含Attack/Link/Architecture/Cache)
文章目录AttackLab(缓冲区溢出实验)对应书上Chap3LinkLab(链接实验)对应书上Chap7ArchitectureLab(体系结构实验)对应书上Chap4-5CacheLab(缓存实验)对应书上Chap6AttackLab(缓冲区溢出实验)对应书上Chap3大意待攻击的程序中使用了gets函数获取用户输入,你作为攻击者要输入一些内容来转移程序的控制权。收获理解了gets函数为什么被
BU冰糖雪梨里的梨PT
·
2024-02-06 20:50
《CS:APP》的实验
csapp
深入理解计算机系统
15213
第二章、信息的表示和处理
背景在实际编程中,依然对有些数值的处理和变换比较模糊,在看
csapp
的时候发现里面的论述很详细,常规问题不在此赘述,这里主要是记录大部分人的知识点盲区。
s.feng
·
2024-02-06 00:31
计算机基础知识
c++
第三章、汇编语言
背景大部分人对数值信息都了解七七八八,但汇编了解的人却不多,虽然我学过王爽的《汇编语言》,但那个时候对计算机理解不深刻等于没学,目前在工作中遇到很多相关问题每次查起来很麻烦,这次正好借
csapp
再系统的梳理一遍
s.feng
·
2024-02-06 00:31
计算机基础知识
c++
通过汇编深入理解C++语言
强烈建议想掌握C和C++本质的同学,动手写些简单的例子代码,再Debug模式下(注意不要用Release模式,因为很多细节会被优化掉),对照源码看汇编代码,能让你对C和C++有更本质的认识,另外建议先看懂
CSAPP
辛酉 廖镛霖
·
2024-02-03 17:14
深入理解计算机系统
汇编
c++
Attack Lab:Phase1~Phase5【缓冲区溢出实验】
注:本实验所用文件不是
csapp
官网给出的,是学校下发的。可以参考我的思路。phase1本阶段目标是使getbuf调用结束后,控制权交给touch1函数。
BU冰糖雪梨里的梨PT
·
2024-02-02 06:30
《CS:APP》的实验
缓冲区溢出
csapp
attack
lab
汇编
CSAPP
函数调用
过程(函数调用的原理)过程在高级语言中称为函数或者方法,一个过程包括将数据和控制从代码的一部分传递到另一部分。此外,它还必须在进入时为过程中的局部变量分配空间,并在退出时释放空间,大多数机器只提供了转移控制到过程和从过程中转移控制这种简单的指令。数据传递和局部变量的分配释放都是通过操纵程序栈来实现。合理的构建方法并调用,能大大增加代码的复用性,也能是代码结构更加清晰。要提供对过程的机器级支持,必须
王加冰
·
2024-02-01 05:47
《深入理解计算机系统》实验三 —— Buf Lab
这是
CSAPP
的第三个实验,主要让我们熟悉GDB的使用,理解程序栈帧的结构和缓冲区溢出的原理。实验目的 本实验的目的在于加深对IA-32函数调用规则和栈结构的具体理解。
3561cc5dc1b0
·
2024-01-30 22:18
扩展 GDB - 高亮显示反汇编中的 call 语句
在用GDB调试
CSAPP
bomblab时,当反汇编代码稍微具备点规模,例如超过10行,直接翻译为C语言的难度就增加了,此时考虑先找到调用的函数,然后再梳理if/else/for循环的执行流。
baiyu33
·
2024-01-29 05:45
python
开发语言
gdb
调试
汇编
csapp
CSAPP
fall2015 深入理解计算机系统 lab1 datalab详解
DataLabdatalab数据实验这个数据实验请在linux机器上面运行,实测macm1本跑不起来。windows没试过。centos上需要安装好gcc运行环境。如果跑不起来记得安装下面这个东西:yum-yinstallglibc-devel.i686运行makebtest的时候可能会有warning提示,不用管,这个时候其实已经创建完btest了,可以直接运行btest。bitXor第一个函数
Thepatterraining
·
2024-01-24 20:14
深入理解计算机系统
CSAPP
c
bit
data
lab
float
CSAPP
fall2015 深入理解计算机系统 Cache lab详解
CacheLabcachelab缓存实验代码下载从
CSAPP
上面下载对应的lab代码http://
csapp
.cs.cmu.edu/3e/labs.html环境准备需要安装valgrind。
Thepatterraining
·
2024-01-24 14:24
深入理解计算机系统
csapp
c
cache
CSAPP
第七章 Linking part2
CSAPP
第七章Linkingpart2ExecutableObjectFiles可执行目标文件(executableobjectfile)的格式与可重定位目标文件(relocatableobjectfile
Nahida_nora
·
2024-01-21 19:04
面试题
笔试
C++
c++
(2)(2.1) Andruav Android Cellular(一)
2Andruav入门3AndruavFPV4AndruavG
CSApp
前言Andruav是一个基于安卓的互联系统,它将安卓手机作为公司计算机,为你的无人机和遥控车增添先进功能。1Andruav是什么?
EmotionFlying
·
2024-01-21 09:25
【遥测无线电】
开源
无人机
遥测无线电
Copter
ArduPilot
cs:app学习笔记(2):swap
swap两个数的交换说明inplace_swapswaptest_swap运行结果字符串首尾交换
csapp
所示的错误代码运行结果结果分析修改后的程序运行结果swap两个数的交换#includevoidinplace_swap
旭日之冕
·
2024-01-20 22:16
CS:APP
c
CSAPP
阅读笔记-程序的机器级表示
程序的机器级表示计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列的阶段生成机器代码。GCCC语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。然后GCC调用汇编器和链接器,根据汇编代码生成可执行的机器代码。那么为什么我们还要
只想开始
·
2024-01-19 14:05
笔记
计算机系统
bomb lab 解题报告
对应课本
csapp
的实验https://hakula.xyz/
csapp
/bomblab.html
大红豆小薏米
·
2024-01-18 12:31
csapp
实验5-cachelab实验详解
5-cachelab1简要分析实验目的:熟悉cache,学会根据cache优化程序执行速度工作空间:csim.c和trans.c实验内容:partA:在csim.c下面编写一个缓存模拟器来模拟cache的行为,并且规定该模拟器用LRU替换策略,即替换某组中最后一次访问时间最久远的一块,还要支持一些输入可选参数操作有四种:I:加载指令L:加载数据S:存储数据M:修改数据反馈有三种:hit:命中mis
绘梨衣吖
·
2024-01-18 09:42
csapp实验
学习
CSAPP
Bomb lab(内含答案)
CSAPP
Bomblab
CSAPP
的bomblab是让你通过反汇编和gdb,找到六个相应的字符串,来拆掉炸弹。本实验一共六个阶段,每个阶段对应一个字符串。
haohuaijin
·
2024-01-15 17:00
csapp
csapp
汇编
反汇编
CSAPP
实验-BombLab
bomblab是
csapp
的第二个配套实验,该实验提供了一个bomb二进制文件和一个bomb.c源文件,我们的目标是运行bomb并按照提示一步步输入字符串,直到完成整个拆炸弹的流程。
古玩
·
2024-01-15 17:57
csapp
csapp
CSAPP
- 反编译 string_length
虽然先前已经把phase_1和phase_2做出来了,但其实是参考了网络上的答案,仅仅是大概知道了关键汇编代码。但其实并没有真的懂。为啥呢?因为很多模棱两可的地方是靠猜测的,而猜测是脆弱的。重新看phase_1,第一个门槛是string_length函数。尝试逐句翻译回C代码。前提条件:知道eax存储返回值,知道rdi存储函数第一个参数。使用Intel风格的汇编。(gdb)disassembles
baiyu33
·
2024-01-15 17:23
c语言
CSAPP
- bomblab 作弊方式2: gdb jump 命令, 以及修改 jne 为 nop 指令
CSAPP
-bomblab作弊方式2:gdbjump命令,以及修改jne为nop指令厌倦了在gdb中一步步顺序执行bomb可执行程序。为什么不能自行控制程序的执行呢?
baiyu33
·
2024-01-14 15:08
gdb
c语言
汇编
调试
csapp
CSAPP
--BOMBLAB实验
目录一、bomblab介绍1.简介2.实验步骤2.1.第一步:获取bomb2.2.第二步:拆除bomb二、工具使用三、拆解分析3.1phase_1考察字符串比较3.2phase_2考察循环3.3phase_3考察条件分支(switch)3.4phase_4考察递归调用和栈3.5phase_5考察指针3.6phase_6考察链表/指针/结构3.7secret_phase考察二叉树一、bomblab介
猪猡猪猡猪
·
2024-01-14 14:55
CSAPP
c语言
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
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
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
网络
五 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
上一页
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
其他