2018-2019-2 网络对抗技术 20165202 Exp1 PC平台逆向破解

一、基础知识

掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码。

  • NOP指令为空指令,当运行该指令时CPU不做任何事情,但是会占用一个指令的时间,当指令间需要有延时,可以插入NOP指令。(机器码:90)
  • JNE xxx指令是一个条件转移指令,不相等时跳转,转到标号xxx处执行。(机器码:75)
  • JE xxx:如果相等时跳转。(机器码:74)
  • JMP :无条件跳转指令。无条件跳转指令可转到内存中任何程序段。转移地址可在指令中给出,也可以在寄存器中给出,或在储存器中指出。段内直接短转Jmp short(机器码:EB) 段内直接近转移Jmp near(机器码:E9) 段内间接转移 Jmp word(机器码:FF) 段间直接(远)转移Jmp far(机器码:EA)
  • CMP:为比较指令,功能相当于减法指令,只是不保存结果。(机器码:38、39、3A、3B、3C、3D)

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

  • 反汇编:就是将目标代码转为汇编代码的过程,同样可以理解为把机器语言转换为汇编语言代码、低级转高级。
  • 实验中用到的反汇编命令
    objdump -d 5202pwn | more
    objdump -d命令是将代码段反汇编,|管道符号, 它的功能是把管道|前的命令执行的结果作为管道后面指令的输入传给下一个指令。

    objdump -d name | more:该命令把name代码段反汇编,并把输出送给more命令作为输入,more命令分

二、实验内容

目标一 直接修改程序机器指令,改变程序执行流程

猜你喜欢

转载自www.cnblogs.com/jhs888/p/10544579.html