20155325 Exp1 PC平台逆向破解(5)M

Exp1 PC平台逆向破解(5)M

阶段性截图

基础知识

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

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

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

  • objdump -d
    从objfile中反汇编那些特定指令机器码的section。

  • xxd - 做一次十六进制的输出或者反操作

    在vi命令状态下:
    :%!xxd :%!od 将当前文本转化为16进制格式

参考链接objdump命令linux 命令 xxd linux下查看二进制文件

  • 47d-4ba = c3ffffff
    所以 修改d7为c3
vi 程序名

1.按ESC键

2.输入如下,将显示模式切换为16进制模式
:%!xxd

3.查找要修改的内容
/e8 d7

(里面这个空格必须输,否则找不到)

4.找到后前后的内容和反汇编的对比下,确认是地方是正确的

5.修改d7为c3

6.转换16进制为原格式
:%!xxd -r

7.存盘退出vi
:wq

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

能正确构造payload进行bof攻击

break *address
在程式运行的内存地址处停住。

遇到的问题及解决

  • 在配置Kali和实验的过程中有时会遇到以下这种问题,当然是选择安装它啦

  • 安装中文输入法

搜狗输入法安装失败后,选择安装google的,参考: [分享] kali linux 中文输入法(弄了一晚综合各种帖子终于弄好了)

参考链接

原文地址:https://www.cnblogs.com/GDDFZ/p/8592539.html