修改EIP

滴水逆向三期-JCC

断点:他可以让cpu一条指令一条指令执行
EIP寄存器,里面存储了一个地址,这个地址决定了我们cpu下一行要执行的代码是什么,如果想CPU的行为,那我们要修改EIP这个寄存器
mov tip,0x12345678 虽然说这个不可以 但是jmp可以 jmp 0x4183FD
在这里插入图片描述
跳转的位置如果离这个相差128个字节 那就会加了个SHORT 如果超过就不会有SHORT
什么是JMP JMP和跳转没有关系,他的作用就是修改EIP,CPU自己才能跳,CPU走的时候会根据EIP里面的值去跳,所以JMP就是——修改EIP 别的跟他没有关系
在这里插入图片描述
执行JMP的时候发现寄存器没有变红的,堆栈没有变化 JMP唯一影响的是EIP的值

JMP指令,修改EIP的值
MOV EIP,寄存器/立即数 简写为:JMP 寄存器/立即数

CALL指令
PUSH 地址B
MOV EIP,地址A/寄存器 简写为:CALL 地址A/寄存器

在这里插入图片描述
记得要在call 后面的地方下断点F2(测试时候希望cpu跑到这里的时候停一下)测试的时候,为了可以让call的地方成功,一定要下断点,这样在他跳过来的时候,立刻让他停下来,要不然堆栈就出错了
在这里插入图片描述

在这里插入图片描述
CALL跟JMP相同的地方,把一个值放到EIP中
不同的地方ESP变了,说明忘堆栈里压了一个值——返回地址,是call的下一个地址
一行多少字节跟下一个差多少个字节

ret和call是成对出现的,call出去了 ret回来的
ret相当于pop eip

在这里插入图片描述

————2019.9.19 DT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值