csapp
古玩
华科软院2019届本科生 游戏开发工程师
展开
-
CSAPP实验-ShellLab
shell-lab是csapp的配套实验之一,它要求我们实现一个功能和unix shell类似的tiny shell,在源文件tsh.c中已给出了基本框架,剩下的只需要完成实现指定的函数即可,该实验对应csapp的第8章内容。Unix ShellShell可以认为是一个可交互的命令解释器,它替代用户运行程序,shell会从标准输入流stdin等待输入命令行,根据命令行内容的指示执行对应操作。命令行是由空格分隔的ascii单词序列组成,其中第一个单词为内置命令或可执行文件的路径(或环境变量path目录下的原创 2020-08-18 14:45:10 · 4803 阅读 · 1 评论 -
CSAPP实验-CacheLab
cachelab是csapp的配套实验之一,该实验分为A、B两个部分,A部分要求实现一个cache模拟器,B部分是实现一个针对cache优化的矩阵转置函数Part APart A部分我们需要完成csim.c源文件,参考csim-ref程序接收相同的命令行参数并产生相同的输出。csim-ref是一个参考可执行程序,它能够模拟cache并处理valgrind生成的trace文件,它遵循LRU(最近使用)替换策略。我们的main函数要依次做如下几件事情:使用getopt库处理参数,保存cache的几个基本原创 2020-07-23 20:08:26 · 7486 阅读 · 0 评论 -
CSAPP实验-AttackLab
csapp的attacklab配套实验,要求利用缓冲区溢出对指定可执行文件进行攻击,包括CI(Code Injection)攻击和ROP(Return-Oriented Programming)攻击两种方式概览在writeup已经中给出了详细的目标和实验流程,首先给出了一个有漏洞的函数getbuf:unsigned getbuf(){ char buf[BUFFER_SIZE]; Gets(buf); return 1;}该函数调用Gets函数从标准输入流读取字符串并存在缓冲区bu原创 2020-07-22 14:08:02 · 2718 阅读 · 0 评论 -
CSAPP实验-BombLab
omblab是csapp的第二个配套实验,该实验提供了一个bomb二进制文件和一个bomb.c源文件,我们的目标是运行bomb并按照提示一步步输入字符串,直到完成整个拆炸弹的流程。但是源文件中只提供了部分代码,所以我们需要通过反汇编工具 objDump 来分析bomb的汇编代码,推导出所有能够拆解炸弹的字符串。准备工作概览首先分析实验提供的不完整的源文件bomb.c,在其main函数中依次调用phase_1到phase_6六个函数,每个函数都接受read_line()的返回作为phase的input原创 2020-07-17 17:51:30 · 2329 阅读 · 1 评论 -
CSAPP实验环境搭建
CSAPP配套了一系列很棒的lab,由于实验环境是unix,如果在Windows或MACOS环境下建议使用Docker的Linux容器来搭建csapp的实验环境。下载lablab下载地址:http://csapp.cs.cmu.edu/3e/labs.html,点击对应实验的Self-Study Handout即可下载该实验。安装DockerDocker下载地址:https://www.docker.com/,选择对应操作系统并下载安装即可。配置ubuntu选择ubuntu作为实验的运行环境,原创 2020-07-03 14:23:26 · 11828 阅读 · 8 评论 -
CSAPP实验-DadaLab
简介csapp的datalab配套实验, 要求修改bits.c源文件使所有给定函数满足功能并通过btest的所有测试用例,每个实现函数内均对使用的运算符种类和数量有所限制,可以用dlc程序进行检查。该实验主要为了强化理解整形和浮点型数据的编码形式和位运算相关知识。实验内容bitXor实现异或操作/* * bitXor - x^y using only ~ and & * ...原创 2020-03-25 13:54:54 · 1025 阅读 · 0 评论