csapp lab系列:
本次lab: Attacklab
耽误了整整一个月没有做csapp的lab了. 忙着返校,忙着实验室的东西, 今天抽了点时间,总算是完成了第三个实验.
下面就记录下题解分析吧.
csapp lab系列:
本次lab: Attacklab
耽误了整整一个月没有做csapp的lab了. 忙着返校,忙着实验室的东西, 今天抽了点时间,总算是完成了第三个实验.
下面就记录下题解分析吧.
今天继续学习csapp.
前一个lab: Csapp-Datalab 详解
本次lab, bomblab.
这个实验相当好玩, 题如其名, 类似一个拆炸弹的过程. 实验只给了一个可执行文件, 需要学生通过gdb反汇编这个可执行文件, "拆弹"共有6个阶段, 每个阶段需要用户输入一个特定的字符串, 一旦输入错误, 炸弹就会爆炸,程序终止.
做完整个实验, 学生可以学会如何使用gdb, 能够看懂 gcc所编译出来的汇编代码. 掌握阅读汇编代码的能力.
gdb的使用可参考: gdb 调试基础
本次解释, 均已代码注释+图形解释.
所有汇编代码, 可通过 objdump -d bomb获得.
一直用惯了IDE集成的debug工具, 忽略了gdb这个命令行debug工具. 而最近在做csapp的bomblab, 就不得不来学习它了. 所以特此记录.
考虑以下我们在IDE中要进行debug一般需要哪些功能?
下面讲解如何用gdb实现这些功能。
为了更方便讲解, 这里提前把所有常用命令贴出, 读者可不用一一记住, 在逐渐使用的过程中,自然就能形成记住了.
一般来说,安装任何linux发行版后,我们做的第一步就是更换它的仓库源,然后才能愉快的下载各种东西。
这里就说一下ubuntu的通用换源方法:
1 | # 备份源source.list |
ok, 就这么简单。
jpackage是java 14里面自带的打包工具,jpackage解决了java开发过程中得一个难题:分发自己的程序,需要客户电脑中已安装jre环境。有了jpackage,我们可以直接将java程序打包成安装包,具体来说:
jpackage目前并不成熟,但是也算是可以使用。另外,虽然jpackage可以打包各个系统的安装包,但是在一个系统上只能打对应系统的安装包。比如在windows上,就只能打成exe或msi。
由于hexo的渲染机制,本文代码有问题,所以选择隐藏。
作为一个半vimer:不想用纯vim+各种插件,但实现很喜欢vim的各种键位带来的便捷性。所以很久以前就是使用IDE+vim插件在使用。IDE当然是使用jetbrain家的了。今天就来介绍一下jb家可用的vim插件ideavim以及如何自定义配置ideavim。
hexo 显示尖括号有问题,导向github:
https://github.com/ravenxrz/ravenxrz.github.io/blob/master/source/_posts/ideavim%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E.md