20181328 网络攻防实验一 PC平台逆向破解

实验要求

1. 截图要求
  1.1 所有操作截图主机名为本人姓名拼音
  1.2 所编辑的文件名包含自己的学号
  如未按如上格式要求,则相应部分报告内容不记成绩。


2. 报告内容
   2.1掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分)
  2.2掌握反汇编与十六进制编程器 (0.5分)
  2.3能正确修改机器指令改变程序执行流程(0.5分)
  2.4能正确构造payload进行bof攻击(0.5分)


3.报告整体观感
  3.1 报告格式范围,版面整洁 加0.5。
  3.2 报告排版混乱,加0分。


4.文字表述
  4.1报告文字内容非常全面,表述清晰准确 加1分。
  4.2报告逻辑清楚,比较简要地介绍了自己的操作目标与过程 加0.5分。
  4.3报告逻辑混乱表述不清或文字有明显抄袭可能 加0分。

一、准备知识

Linux基本操作:

  • cp命令:将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。语法:cp [选项] 源文件或目录 目标文件或目录。说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
      
    - a//该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
    - d//拷贝时保留链接。
    - f//删除已经存在的目标文件而不提示。
    - i//和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 
    - p//此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 
    - r//若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
    - l//不作拷贝,只是链接文件。

     

  • mv命令:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。
   - l //交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
   - f //禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。

 

  •  gdb 调试:调试工具
    (gdb) step/s                        //执行下一条,如果函数进入函数
    (gdb) backtrace/bt                  //查看函数调用栈帧
    (gdb) info/i locals                 //查看当前栈帧局部变量
    (gdb) frame/f                       //选择栈帧,再查看局部变量
    (gdb) print/p                       //打印变量的值
    (gdb) finish                        //运行到当前函数返回
    (gdb) run/r                         //重新从程序开头连续执行
    (gdb) watch input[4]                //设置观察点
    (gdb) info/i watchpoints            //查看设置的观察点
    (gdb) si                            // 一条指令一条指令调试 而s是一行一行代码
    (gdb) info registers                // 显示所有寄存器的当前值

     

二、实验一:直接修改程序机器指令,改变程序执行流程

实验目标:直接修改程序机器指令,改变程序执行流程。手工修改可执行文件,改变程序执行流程,直接跳转到getshell函数。

实验目的:理解可执行文件与机器指令

实验步骤

  • 下载pwn1文件,可以通过共享文件夹或者拖拽放入kali虚拟机中,反汇编。找出main、foo、getshell等地址。

 objdump -d pwn1 | more 

  • 修改可执行文件的指令使其弹出shell

 cp pwn1 pwn1328  //复制一个备份文件pwn1328

 vi pwn1 //打开pwn1文本编辑器,修改地址。 

  • 出现乱码,为了更好观察,将代码转化为16进制查看

 %!xxd 寻找并更改地址

 

  • 验证操作反汇编验证操作

 

如上图,更改地址成功,调用函数地址改变为c3ffffff 

pwn1作用为打印输入数字,pwn1328为打印$,试验成功。

 

 

 

 

 

posted @ 2021-03-10 21:52  维卿  阅读(89)  评论(0编辑  收藏  举报