CSAPP

CSAPP学习笔记——chapter9 虚拟内存

这一章主要介绍了现代操作系统中虚拟内存的概念,先是介绍了虚拟内存的一般概念,这一部分我将在本文第一小节进行一个串联;第二部分介绍了内存映射,并以Linux为例,介绍了fork函数,execve函数的实现细节;第三部分则是介绍了动态内存分配,程序员通过如`malloc`, `new`, `free`,... ......
chapter9 内存 chapter 笔记 CSAPP

CSAPP 第三章 笔记

历史观点 程序编码 机器级代码 x86-64 可见的处理器状态: 程序计数器PC:%rip,给出下一条指令的地址 寄存器文件:16个,储存64位的值 条形码寄存器:保存最近执行的算术或逻辑指令的状态信息,用来控制条件变化 向量寄存器:存放多个整数或浮点数值 函数调用保存策略 调用者保存 被调用者保存 ......
第三章 笔记 CSAPP

CSAPP 第二章 笔记

信息存储 十六进制表示法 0x开头 字数据大小 寻址和字节顺序 大端法/小端法 布尔代数 C中逻辑运算 C中移位运算 右移(算数/逻辑) 整数表示 无符号数编码 补码编码 各种转换 有无符号数之间的转换 不同字长整数之间的转换 小->大 无符号数:补零 有符号数:补符号位 大->小 截断(取模) 整 ......
第二章 笔记 CSAPP

CSAPP 第一章 笔记

硬件组成 总线 I/O设备 键盘,鼠标,显示器,磁盘... 主存 处理器(CPU) 寄存器 hello程序的生命周期 源文件hello.c 文本文件:位序列 字节:8个位为一组 ASCII码 可执行目标文件 Unix:通过编译器驱动程序完成 编译系统 预处理器 ‘#’,hello.i 编译器 ‘ma ......
笔记 CSAPP

程序的机器级表示(CSAPP Chapter 3,COD Chapter 2)

程序的机器级表示(CSAPP Chapter 3,COD Chapter 2) 0. 序言 我们首先回顾计算机执行机器代码的过程和目的。其目的在于处理数据、管理内存、读写数据、通信......。其过程大概可以这样描述:编译器以汇编代码的形式输出,它是机器代码的文本表示,给出程序中的每一条指令。然后 ......
Chapter 机器 程序 CSAPP COD

csapp attack lab

1.思考自己能够做什么->使用手写汇编,gcc,objdump的简单组合得到了指令的机器码 2.如何让自己处于一种思维活跃的状态 如何使用ret指令?需要将返回地址压回栈中,第一个想到的是使用覆盖的方法,想去寻找上一级调用的地址,但是没有找到 参考了别人的方法,用了pushq,这种方法是抓住了本质: ......
attack csapp lab

csapp学习笔记——第二章信息的表示和处理

csapp学习笔记——第二章信息的表示和处理 本章主要讲了计算机系统中的数据的表示方法以及在为什么会出现相关的转化问题(float int double等互相转换)。 计算机系统中的数字表示方法 在现实世界中我们使用的是十进制的表示方法,而在计算机系统中我们则使用的是2进制的表示方法(构造储存以及处 ......
第二章 笔记 csapp 信息

CSAPP Notes: Types

# CSAPP Notes,类型 > 随手写的,可能会有错误(); ## 类型 | 数据类型 | 大小 | | | | | `char` | 1 | | `bool` | 1 | | `short int (short)` | 2 | | `int` | 4 | | `long int (long) ......
CSAPP Notes Types

CSAPP处理器体系结构

注意: 译码这个阶段的作用就是明确执行所需要的数据, 原始可得的数据在取指阶段就已经可以明确了 还要注意到, 译码, 访存, 写回都可以什么都不干, 但执行阶段不行, 即使加上0也行 图上mrmovq指令的访存, 应该是valM, 又印错了 popq rA中的访存, 应该是valM, 又印错了 顺序 ......
体系结构 处理器 体系 结构 CSAPP

csapp二进制炸弹实验个人总结

2023/7/13完成了这个实验,算是我的第一次逆向实战,对我来说很有挑战性。总结如下: 1.对于汇编的熟练度,尤其是“层次”问题,mov 0x8(%rsp),%rax和lea 0x8(%rsp),%rax并不同;要注意某一个值本身是“地址”还是“数值” 2.理解机器码工作原理后,拓宽思路,经验+寻 ......
二进制 炸弹 csapp 个人

CSAPP DataLab学习笔记

## 1. bitXor ``` /* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Legal ops: ~ & * Max ops: 14 * Rating: 1 */ int bitXor(int x, int ......
DataLab 笔记 CSAPP

CSAPP读书笔记(第1章)

编译Hollow程序: gcc -o hello hello.c 四阶段的编译系统: 运行hello程序: ./hello 这里的点代表啥? 上级吗 ......
笔记 CSAPP

读书笔记(CSAPP)02

gcc -Og -S mstore.c 上述命令行Og意思是优化等级, 指生成符合原始C代码整体结构的机器代码的优化等级, S是产生一个汇编文件, 就可以查看编译器产生的汇编代码 gcc -Og -c mstore.c 上述命令行则是生成".o"的目标代码, 它是二进制的, 是给机器执行的字节序列, ......
笔记 CSAPP 02

CSAPP练习题2.11

练习题2.11 1 /* 2 CSAPP练习题2.11,并做了一些扩展 3 指定或者用户输入一个数组(100以内),打印反转前后的所有数组元素 4 */ 5 #include <stdio.h> 6 7 void inplace_swap(int *x, int *y); //互换值 8 void ......
练习题 CSAPP 2.11 11

csapp

Computer System : A Programer's Perspective 计算机系统漫游 编译系统组成 预处理器 编译器 汇编器 链接器 预处理阶段: 预处理器根据字符'#'开头的命令,修改原始的C程序,将头文件直接插入程序文本中,得到一个以.i作为文件扩展名的程序. 编译阶段: 编译 ......
csapp

读书笔记(CSAPP)01

第2章 2.1 信息存储 既然现代计算机使用二进制, 那么整数, 小数(计算机叫做浮点数), 日常书写的文字该怎么表示呢, 编码吗 16进制方便阅读和书写二进制数, char类型只不过是因它用于编码单个字符而得名, 其本质也就是一个字节的数字而已, 多于一个字节的数据类型, 有大端法和小端法的字节顺 ......
笔记 CSAPP 01

CSAPP-Bomb Lab

这个实验的逻辑是这样的 需要使用gdb debug 进入到phase_x的各个函数,但是单步调试step是进不去的(也不难理解,如果gdb可以直接进入那这个实验还有什么难点) 但是反汇编得到的结果是全部的内容,通过阅读反汇编代码,找到一些关键节点,通过gdb对二进制进行dubug添加breakpoi ......
CSAPP-Bomb CSAPP Bomb Lab

CSAPP-Data Lab

gcc -O1 -Wall -m32 -lm -o btest bits.c btest.c decl.c tests.c In file included from btest.c:16:0: /usr/include/stdio.h:27:10: fatal error: bits/libc-h ......
CSAPP-Data CSAPP Data Lab

CSAPP-Attack Lab

Code Injection Attacks Level 1 在test中调用getbuf()之后不再返回test,而是返回touch1 unsigned getbuf() { char buf[BUFFER_SIZE]; Gets(buf); return 1; } void touch1() { ......
CSAPP-Attack Attack CSAPP Lab

CSAPP-Architecture Lab

Part A 前置准备 gcc -Wall -O1 -g -c yis.c gcc -Wall -O1 -g -c isa.c gcc -Wall -O1 -g yis.o isa.o -o yis gcc -Wall -O1 -g -c yas.c flex yas-grammar.lex mak ......
CSAPP-Architecture Architecture CSAPP Lab

CSAPP-Shell Lab

提供的工具: parseline:获取参数列表char **argv,返回是否为后台运行命令(true)。 clearjob:清除job结构。 initjobs:初始化jobs链表。 maxjid:返回jobs链表中最大的jid号。 addjob:在jobs链表中添加job deletejob:在j ......
CSAPP-Shell CSAPP Shell Lab

深入理解计算机系统(CSAPP)bomblab实验进阶之nuclearlab——详细题解

前言 本实验是难度高于bomblab的一个补充实验,该实验部分题目难度已经达到CTF入门水平,且这个实验据说是上一届的某个学长原创,因此互联网上几乎找不到类似的题目。在间断地思考了几周后我最终完成了所有题目,并打算在这篇随笔里详细地给大家分享我的解题过程。 核弹样本(可本地断网运行):https:/ ......
题解 nuclearlab bomblab 计算机 系统

TinyShell(CSAPP实验)

简介 CSAPP实验介绍 学生实现他们自己的带有作业控制的Unix Shell程序,包括Ctrl + C和Ctrl + Z按键,fg,bg,和 jobs命令。这是学生第一次接触并发,并且让他们对Unix的进程控制、信号和信号处理有清晰的了解。 什么是Shell? ​ Shell就是用户与操作系统内核 ......
TinyShell CSAPP
共23篇  :1/1页 首页上一页1下一页尾页