当前位置: 首页 > news >正文

自己的网站怎么做跳转wordpress怎么建淘宝客

自己的网站怎么做跳转,wordpress怎么建淘宝客,饿了么企业网站,郑州网站建设 华数#x1f341;你好#xff0c;我是 RO-BERRY #x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 #x1f384;感谢你的陪伴与支持 #xff0c;故事既有了开头#xff0c;就要画上一个完美的句号#xff0c;让我们一起加油 目录 1. 寄存器2. ebp和esp是如… 你好我是 RO-BERRY 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 感谢你的陪伴与支持 故事既有了开头就要画上一个完美的句号让我们一起加油 目录 1. 寄存器2. ebp和esp是如何对堆栈进行维护的mian函数栈帧如何创建2.1 push ebp2.1 move ebp esp2.2 sub esp, 0E4h2.3 push exb2.4 push exi2.5 push edi2.6 push edi2.6 lea edi,[ebpFFFFFF1Ch]2.7 mov ecx,39h 以及mov eax,0CCCCCCCCh2.8 rep stos dword ptr es : [edi] 3. 局部变量栈帧的创建3.1 对a分配空间3.2 对b分配空间3.3 对c分配空间 4. 函数的调用 1. 寄存器 寄存器我们了解过有eax、ebx、ecx、edx、ebp、esp等等 本节的重点是我们的ebp、esp这两个寄存器这两个寄存器中存放的是地址这两个地址是用来维护函数栈帧的 每一个函数的调用都要创建一块空间这个空间创建在栈区上。 esp则为我们的栈顶指针ebp就是我们的栈底指针 esp (EStack Pointer)栈顶指针它指向当前栈帧中的栈顶位置。每当一个新的函数被调用时esp会动态地更新以跟踪新参数的压入和局部变量的分配。当函数执行完毕esp会回退到释放这些资源的位置。 ebp (EBase Pointer)栈底指针又称为基指针它通常用于存储当前函数的帧信息比如函数的局部变量、参数和其他数据。ebp在函数开始时被设置为栈顶减去函数头部所需的空间这样就可以作为访问栈中所有局部变量的基地址。 在函数调用过程中esp和ebp经常被用来进行帧布局的操作例如保存旧的esp值然后将新的esp指向新的函数参数而 ebp则保持不变作为固定不变的局部变量基址。当函数返回时esp通常会恢复到原来的值释放栈帧而ebp也会回到正确的基址以便后续函数继续正确地访问局部变量。 2. ebp和esp是如何对堆栈进行维护的mian函数栈帧如何创建 其实main函数也是被另一个内部系统函数调用的 具体调用为 mainCRTStartup — __tmainCRTStartup — main 前两个函数都是系统里的调用函数 程序在一开始运行时ebp以及esp是维护__tmainCRTStartup的函数栈帧的 栈空间的使用是由高地址往低地址使用的 在执行main函数的时候就会往上进行创建栈帧 2.1 push ebp 我们将写的代码进行反汇编的操作看到程序底层的汇编代码可以看到第一步就是对于ebp的push操作 push ebp 的作用是将 ebp 的值压栈Push the value of ebp onto the stack这样在函数执行过程中ebp 就不会被其他操作覆盖保持对函数调用上下文的引用。 当函数开始执行时push ebp 让 ebp 保存当前堆栈帧的状态然后 mov ebp, esp 将 esp栈指针的内容赋给 ebp从而esp指向新的栈顶用来作为新创建的局部变量的内存地址。这样做有助于维护函数调用的上下文便于后续访问和管理局部变量、参数等。 也就是说将ebp此时的值存入栈中以便后面进行查找在此时就是__tmainCRTStartup的ebp值 当我们在没有执行push操作时esp与ebp的值如下 在我们执行后esp的值从后两位为a8变为了a4 这也说明了esp被压入栈。 此时的esp则往低地址走了几步现在指向的就是__tmainCRTStartup的ebp的地方了 2.1 move ebp esp 执行了 push ebp之后第二步就是move ebp esp move ebp esp 的操作意味着将 ebp 的值赋给 esp。这种操作经常发生在函数返回或异常处理时因为当函数结束时可能需要清空堆栈将esp回退到栈帧之前的状态以便为下一次函数调用腾出空间。在清理过程中ebp 通常会被用来保存堆栈的原有状态然后将其位置替换到 esp这样就可以清除函数调用时的信息。 也就是ebp与esp都指向__tmainCRTStartup的ebp 2.2 sub esp, 0E4h 第三步为sub esp, 0E4h sub esp, 0E4h是一个指令组合它代表从堆栈指针ESP通常用于跟踪函数调用时的局部变量和参数中减去0E4个字节16进制的0E4等于十进制的220。这个操作常用于函数调用或内存分配可能是为了为新的局部变量分配空间或者调整堆栈布局。 具体来说 sub是subtract的缩写即减法操作。esp是堆栈指针它指向栈顶减去一个数意味着将栈顶地址向下移动。0E4h是一个16进制数转换成十进制就是220所以实际上是将栈顶的220个字节移除或压入栈中。 这段空间其实就是为main函数预留的一段空间 在执行完这个操作后 2.3 push exb push exb顾名思义也是将exb此时的数据存储到栈中 2.4 push exi 将esi此时的数据存储到栈中 2.5 push edi 2.6 push edi 2.6 lea edi,[ebpFFFFFF1Ch] lea edi, [ebpFFFFFF1Ch] 是一条x86汇编指令其中 “lea” 是load effective address有效地址加载的缩写它用于计算并存储一个内存地址到寄存器edi中。在这个指令中 edi 是destination operand目标操作数通常用于存放计算出的内存地址。[ebpFFFFFF1Ch] 是source operand源操作数它使用基址加变址寻址方式。ebp 是基指针base pointer用于访问栈帧中的数据。加上偏移量 FFFFFF1Ch意味着从栈帧的当前位置向上偏移0xFFFFFF1Ch处的内存位置。 这条指令的作用是将栈上某个特定位置的地址赋值给edi这个位置通常是函数调用时为了后续操作需要而存储的数据地址。在分析程序代码时这可能对应于函数的局部变量、参数或其他动态分配的数据结构的地址。 在这里其实就是mian函数的栈顶地址给了edi寄存器 2.7 mov ecx,39h 以及mov eax,0CCCCCCCCh mov ecx, 39h: 这行指令将立即数 39h十六进制等于十进制的 57传送到名为 ecx 的寄存器中。ecx 通常用于索引或循环计数。在这里ecx 被设置为一个特定的值可能用于控制某种循环次数或者作为数组操作的下标。 mov eax, 0CCCCCCCCh: 这行指令将十六进制数值 0CCCCCCCCh (十进制的 -1073741821) 移动到 eax 寄存器。eax 在x86架构中是一个常用的通用寄存器常用于存储操作数。 0CCCCCCCCh是一个特殊的值有时在某些情况下用于测试内存是否已初始化因为它几乎不会出现在正常的初始化中。 相当于代码 ecx 39h eax 0CCCCCCCCh 对这两个寄存器赋值2.8 rep stos dword ptr es : [edi] dword ptr es:[edi] ediEAX的低16位是一个寄存器指向存储的起始位置es额外段寄存器指定数据段ptr表示是按字节偏移地址。因此这整个指令组合的意思是 从edx寄存器开始重复执行存储操作每次将源操作数中的两个字节写入es段的当前指定位然后地址指针edi递增指向下一个存储位置直到所有数据都被写入。 也就是将ecx中39h个空间全部写入成eax的0CCCCCCCCh相当于给我们开辟的空间进行初始化 以上这个部分main函数的函数栈帧就已经创建完成了 3. 局部变量栈帧的创建 3.1 对a分配空间 这里就是将a放入ebp-8的位置上去a为int类型四个字节 3.2 对b分配空间 3.3 对c分配空间 4. 函数的调用 这里的步骤就是 将b的值放入eax中再将eax压栈放入栈中将a的值放入ecx中再将ecx压栈放入栈中call指令调用add函数call指令前面的地址为call指令的下一条地址 跳到add函数准备栈帧并执行add函数 最后通过函数的调用返回结果最后得到结果
http://www.dnsts.com.cn/news/110819.html

相关文章:

  • 宝宝投票网站怎么做跨境电商千万别做亚马逊
  • 网站分为哪几种注册企业邮箱免费
  • 国内漂亮的企业网站wordpress性能检测
  • 大专网站建设论文wordpress电子邮件要用什么
  • 除了红动中国还有哪些设计网站岳阳网站建设免费咨询
  • 网站建设打广告贴吧推广
  • 杭州网站排名优化公司怎么套模板 网站模板
  • 安康那个公司做网站好网站生成app
  • 长沙网站开发设计wordpress cms下载地址
  • 怎么选择大连网站建设怎么把自己做的网站传网上
  • 用dede做网站去掉版权定西临洮网站建设
  • 做一个网站的计划书中国接单外发加工网
  • 投资理财网站模板办公空间设计经典案例
  • 一些网站只能在微信打开怎么做的阳东城乡规划建设局网站
  • 建设银行官方网站网页版桂林人论坛新鲜事爆料
  • 南昌网站开发机构wordpress 设置七牛
  • 破解php网站后台账号密码中国有名的网站建设公司
  • 厦门建设局长单一产品网站如何做seo
  • 四川建站网站作业代做
  • 建立soho公司网站互联网广告优势
  • 网站建设源代码共享百度推送 wordpress
  • 手游网站怎么做临沂外贸国际网站建设
  • 时代汇创网站建设公司海口网红打卡地
  • 网站营销方法做鞋子有什么好网站好
  • 电影网站规划深圳市建筑工程股份有限公司招聘
  • 网站排名查询软件汉字logo标志设计
  • 深圳 网站设计公司企业邮箱网易
  • etc工程承包模式普洱网站建设优化
  • 定制网站建设开发维护线下推广活动
  • 网站服务器容量网站建设公司面临的问题