• 汇编系列16-修改EIP的指令(jmp,call,ret)


    EIP 不叫通用寄存器,它里面存放的值,是CPU下次要执行的指令的地址。那么如何去修改它的值呢?

    使用MOV 0xxxxx,是不可以的。

    mov eip,0x12345678   ===相当于  jmp 0x12345678

     

     CALL指令,与jmp指令相同的点----修改EIP的值。

    不同的点,会将call指令下一条指令的内存地址压入堆栈,esp栈顶指针的值减4。

    遇到call指令,要想单步执行,不要按F8,要按F7--涉及调试器相关的知识,暂时不深入了解。

    做底层的人知道 call指令是敏感指令。一般会做变形处理,用其他指令组合完成call指令完成的事情。

     将当前栈顶指针的值赋给EIP,同时让栈顶指针加4。

    学习指令的时候,不要只关注指令的表面形式,而要关注指令到底做了什么事情。

  • 相关阅读:
    vue的选项
    css(3)基础知识查漏补缺
    总结获取网页相关的一些宽高
    vue的全局api(二)
    vue的全局api
    vue的内部指令
    Java File
    Java File IO学习笔记
    systemctl介绍
    java学习笔记一(20180319)
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/13917485.html
Copyright © 2020-2023  润新知