zoukankan      html  css  js  c++  java
  • 计算机系统导论——LAB(2)——bomblab

    写在前面:

    本文章没有拆弹教程,只有拆弹准备工作教程!

    Welcome to my fiendish little bomb. You have 6 phases with which to blow yourself up. Have a nice day!

     

    一、下载文件

    登陆http://autolab.pku.edu.cn,下载writeup和你的专属bomb

    下载bomb:从Download handout和Download your bomb中选择一个下载即可;如果重复下载,可以发现每次下载的文件bombX.tar后缀数字串X都不一样,因为每个bomb都不一样,只要选择一个bomb并一直work on it就好了,请删除其余的所有bomb.

    tips: 1.请先仔细阅读writeup

          2.不要轻易尝试运行bomb,错了会扣分啊喂

    二、登陆服务器

    (一)首次登陆

    终端输入:ssh s1800017827@162.105.31.232 -p 19373,回车

    s1800017827是我的用户名(username),19373是我的端口号(port),请按照助教所发表格填写自己的对应信息;162.105.31.232可能每届不一样(?)

    收到“Are you sure you want to continue connecting (yes/no)?”

    输入了yes并回车,于是继续了

    输入初始密码,默认初始密码为学号(看不到输入,直接敲一连串进去然后回车) 

    第一次登陆服务器会要求修改密码,输入一次初始密码,输入两次新密码(同样看不到输入,直接敲一连串进去然后回车),便可修改完成。

    完成后自动退出服务器登录。

     

    (二)再次登陆

    终端输入:ssh s1800017827@162.105.31.232 -p 19373,回车;输入修改后的密码,即可。

    登陆成功后,主机名(绿色的那串,比如我的就是“mariana-tan@ubuntu”)会更改成服务器上的主机名

    但是这时我们的服务器上是空的,如果输入ls并回车(查看当前文件夹下的所有文件),什么输出都没有。于是我们需要退出服务器登陆,并从本地的终端上传文件到服务器。

     

    (三)退出登陆

    终端输入exit或logout可以直接退出服务器,回到本地的终端。

     

     

    三、上传bomb到服务器

    输入ls查看当前目录下的所有文件,什么输出都没有,说明当前目录为空

    退出服务器,回到本地的终端

    进入存放bombX.tar(X为一个整数,每个人的数字都是不一样的)压缩文件的文件夹(如果不知道路径,可以去files里康康,files就是左侧边栏这个文件夹一样的图标)

    我的存放路径是Desktop/bomb621.tar,用命令cd进入Desktop;为了便于展示,我用ls命令输出了Desktop/路径下的所有文件/文件夹,可以看到Desktop/中存放有文件bomb621.tar、bomblab.pdf和文件夹bomb621、LAB.

    tips:可以输入文件/文件夹的前几个字符,然后敲tab键自动补全文件/文件夹名

    输入:scp -P 19373 bomb621.tar s1800017827@162.105.31.232:~/并回车

    (还是一样,端口号19373、文件名bomb621.tar、用户名s1800017827这几个信息要替换成自己的对应信息)

    瞬间,就会显示上传完毕。

    再次登陆服务器,输入ls,就能看到上传上去的文件了

    解压bombX.tar,输入tar xvf bomb621.tar并回车,解压完成,解压后文件存放于相同目录下创建的和压缩包同名的文件夹中,如下:

     

     

    四、愉快拆弹

    进入解压缩的bombX文件夹,输入./bomb就可以运行bomb了,输入ctrl c可以终止bomb程序

    拆弹指导见公众号文章《如何优雅地拆弹》:https://mp.weixin.qq.com/s/glcorCvgv48w-2em3KbCyA

    (一)常用Linux指令

    copy自公众号文章《你需要了解的服务器一二事》:https://mp.weixin.qq.com/s/0T5Xay_O33n9iX647ba1Iw

    pwd:查看当前目录。

    ls:列出当前文件夹下的文件。

    ll:列出当前文件夹下文件的详细信息。

    cd 文件夹路径:进入指定文件夹下。

    mkdir 文件夹名:建立文件夹。

    cp 源文件名 新文件名:复制文件。

    mv 文件名 文件夹名/:移动文件。

    rm 文件名:删除文件。

    (与文件夹有关操作加上 -r 指令)

    ./文件名:运行文件。

    tar xvf XXXX.tar:解压tar文件。

    gcc 源代码 (文件名):gcc编译。

    objdump -d 可执行文件名:反汇编可执行文件。

    objdump -d 可执行文件名 > 文件名.txt:反汇编可执行文件并保存到txt。

    (二)常用GDB指令

    见The CS:APP textbook Web page at:http://csapp.cs.cmu.edu/3e/students.html

    gdb 可执行文件名:进入gdb开始debug

    r:运行可执行文件//r = run

    r 指令1 指令2...:以指令1、指令2、...作为输入,运行可执行文件

    r 文本文件名.txt:以文本文件名.txt中的文本作为输入,运行可执行文件,读到EOF后,可以在终端继续进行输入

    b 函数名:在函数首地址处设置断点//b = breakpoint

    b *指令地址:在给定地址处设置断点,地址格式形如0x5555555555e63

    clear 函数名:删除函数首地址处的断点

    clear *指令地址:删除给定地址处的断点 

    delete 函数名:删除函数首地址处的断点

    delete *指令地址:删除给定地址处的断点

    disable 断点序号:令该断点暂时失效

    enable 断点序号:令失效断点恢复

    i b:显示当前断点信息//i b = info breakpoint

    disas: 反汇编当前函数//disas = disassemble  

    si:从断点处逐句执行

    k:从断点中退出程序//k = kill

    c:从断点处继续执行程序//c = continue

    i reg:查看当前断点的所有寄存器值//i reg = info register

    x/s 内存地址:以字符串形式输出给定地址存放的值//s = string

    x/nwd 内存地址:n应当以数字替换,以有n个元素的数组的形式输出给定地址存放的值

  • 相关阅读:
    JDK的安装及环境变量部署
    计算机常用运行指令
    Linux基础2
    Linux基础1
    Oracle数据库基础(2)
    Oracle数据库的基础(1)
    测试用例的设计
    软件测试基础
    转化课-环境变量
    转化课-计算机基础及上网过程
  • 原文地址:https://www.cnblogs.com/tanshiyin-20001111/p/11647151.html
Copyright © 2011-2022 走看看