zoukankan      html  css  js  c++  java
  • 20155204 王昊《网络对抗技术》EXP1 PC平台逆向破解

    20155204 王昊《网络对抗技术》EXP1 PC平台逆向破解

    (一)实验内容

    一、掌握NOP、JNE、JE、JMP、CMP汇编指令的机器码

    • NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90)
    • JNE:条件转移指令,如果不相等则跳转。(机器码:75)
    • JE:条件转移指令,如果相等则跳转。(机器码:74)
    • JMP:无条件转移指令。段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转移Jmp far(机器码:EA)
    • CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

    二、掌握反汇编与十六进制编程器

    反汇编指令:objdump -d xxx
    将显示模式切换为16进制模式:%!xxd
    转换16进制为原格式:%!xxd -r

    三、正确修改机器指令改变程序执行流程

    主要流程为:反汇编-->16进制查看文件修改foo函数返回地址为shellcode的地址,从而达成目的。

    四、能正确构造payload进行bof攻击

    在完成构造一个攻击输入字符串,覆盖返回地址,触发getShell函数的基础上,

    要构造一个能将shellcode地址注入foo后的返回地址寄存器的字符串。为了找到这个返回地址寄存器,需要:关闭地址随机化-->将字符串中返回地址设为特定数字-->在eip寄存器中找到foo后返回地址-->将字符串的返回地址改为上一步的那个地址-->完成攻击

    (二)实验总结感悟

    一、实验参考

    二、感悟

    实验感觉难度适中,接触到了漏洞与攻击,做很简单,理解起来花了一些功夫,可能还有点不到位。但是组长以及其他同学的博客给予的帮助还是很大的,不仅能解决操作问题,对比着不同同学的博客也能更好的去理解实验。

  • 相关阅读:
    Oracle 数据库基础学习 (五) 多表查询
    Oracle 数据库基础学习 (四) group by的使用
    Oracle 数据库基础学习 (三) Oracle 四个表结构
    SQL简单语句总结习题
    Oracle 数据库基础学习 (二) 学习小例子:创建一个表,记录商品买卖的情况
    Oracle Database 11g For Windows7 旗舰版的安装
    Oracle to_char()函数的使用细则
    Hadoop集群常用的shell命令
    centos常用命令
    ssh免密码登陆(集群多台机器之间免密码登陆)
  • 原文地址:https://www.cnblogs.com/20155204wh/p/8590487.html
Copyright © 2011-2022 走看看