zoukankan      html  css  js  c++  java
  • 汇编和可执行文件2

    栈不需要清空  可以反复的使用(数组)

    栈是通过push 进行操作的  first in last out 先进后出

    栈不仅仅是存储临时变量 他还存储跳转后返回地址(程序中每次都调用函数的时候存储)

    API相当于函数

    程序是顺序执行的  一开始会根据程序计数器一步一步执行

    esp表示当前的栈顶   ebp表示栈底  call移动将esp往上走 ebp走到栈顶

    栈进行回溯 来存放我们需要记录的一些东西 

    栈可以传递一些参数用来记录返回地址,记录参数。

    栈还是这个栈  

    汇编代码:

    1,赋值语句

    2,跳转

    3,计算语句

    为什么ebp要上移

    ebp~esp一个函数的栈

    因为必须栈底是什么  每个函数都有零时变量 移动用来清理栈底变量

    push的意思是压栈

    pop的意思是出栈

    破解最主要的是标志寄存器

    标志寄存器加程序计数器来决定程序的进行流程

    把标志寄存器拿掉破解很方便

    寄存器

    EBP栈底  ESP栈顶 EIP程序计数器  EFL标志计数器 EAX累加寄存器 EDI圆寄存器 ESI是机子寄存器 (通用寄存器)

    内存

    发生一个push就开始进栈

    push ebs

    mov ebp,esp//栈底发生改变 要复原栈底

    pop出栈在栈中取东西 

    add增加一个地址

    sub  esp,0D8h 开始进栈的时候给他一个空间

    代码

    堆  指针 自己释放 不释放会出现内存泄漏

    常量

    vs2015可以看反汇编 内存编码

  • 相关阅读:
    前端之html的常用标签2和css基本使用
    前端之前端介绍或html的常用标签1
    mysql之练习题4
    mysql之零碎知识
    mysql之索引查询2
    python对象类型----数字&字符串
    初识python---简介,简单的for,while&if
    Shell 语句
    正则表达式----grep
    EG:nginx反向代理两台web服务器,实现负载均衡 所有的web服务共享一台nfs的存储
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/10555324.html
Copyright © 2011-2022 走看看