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

江门市网站开发wordpress淘客插件破解版

江门市网站开发,wordpress淘客插件破解版,专业设计网站有哪些,电影网站模板源代码一、栈操作:入栈push,出栈pop 栈操作:FILO(先进后出机制) 栈顶的指针:ss:sp决定,任意时刻栈顶指针指向SS:SP的位置 对于8086CPU 入栈时:sp-2 出栈时:sp2 assume cs…

一、栈操作:入栈push,出栈pop

栈操作:FILO(先进后出机制)

栈顶的指针:ss:sp决定,任意时刻栈顶指针指向SS:SP的位置

对于8086CPU

入栈时:sp-2

出栈时:sp+2

assume cs:code,ds:data,ss:stack
;定义数据段
data segmentdw 0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H      ;定义8个字单元的存储数据
data ends;定义栈段
stack segmentdw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
stack ends;定义代码段
code segment
start:mov ax,stackmov ss,axmov sp,0020H    ;将栈顶指向stack:0020Hmov ax,datamov ds,ax       ;数据段ds指向datamov bx,0000Hmov cx,0008Hs:   push [bx]       ;将data段中0——15个内存单元中的8个字型数据入栈add bx,2loop smov bx,0mov cx,0008Hs0:   pop [bx]add bx,2loop s0         ;将以上出栈的9个字型数据出栈到data段的0——15个内存单元中mov ax,4c00H    ;调用4c00H功能中断int 21Hcode ends               ;结束code段
end start               ;结束程序

栈的空间大小:对于8086CPU,SS:SP只是确定栈顶的位置,不知道栈空间的大小,只能在写程序时安排栈空间的大小,既要防止入栈时数据太多栈顶超界,又要防止出栈时取出数据过多栈底超界。

对于以下代码寄存器的值变化

在dosbox通过debug -a 0200:0000处进行汇编操作
mov ax,1000      ;(ax)=1000
mov ss,ax        ;(ss)=1000
mov sp,0010      ;(sp)=0010,栈顶位置=((ss*16)+sp)=10010H
mov ax,1234      ;(ax)=1234
mov bx,5678      ;(bx)=5678
push ax          ;将ax入栈,栈顶位置-2=10010-2=1000EH
push bx          ;将bx入栈,栈顶位置-2=10010-2=1000CH
pop ax           ;出栈,(ax)=5678H,栈顶加2=1000CH+2=1000EH
pop bx           ;出栈,(bx)=1234H,栈顶加2=1000EH+2=10010H通过-r命令修改cs:ip寄存器的值,将指令指针指向0200:0000处开始执行汇编语句
-rcs 0200
-rip 0000-t   ;单步指行,观察寄存器ax,bx,ss,sp的值变换

二、栈操作存在的问题

栈顶越界(向上溢出)​

当栈已满时执行push操作,栈顶指针(如SP)会超出栈的合法范围,向栈外内存写入数据。例如:

在x86架构中,若栈空间为10000H~1000FH(16字节),连续执行8次push后栈满,此时SP=0(栈顶指向10010H)。若再次执行pushSP会减2至FFFEH,导致数据写入栈外地址1000EH,覆盖相邻内存区域

栈底越界(向下溢出)​

当栈为空时执行pop操作,栈顶指针会越过栈底边界,读取无效数据。例如:

空栈时SP=0020H(指向栈底下一单元),执行pop会使SP加2至0022H,后续push操作可能覆盖10020H处的数据

三、越界的底层机制与后果

​1,CPU的局限性

CPU仅跟踪栈顶指针(如x86的SS:SP),​不检测栈边界。无论越界与否,均按指令执行,导致以下风险:

数据覆盖​:越界写入可能破坏其他程序或系统数据,引发崩溃(如操作系统关键数据被篡改)。

数据泄露​:越界读取可能获取敏感信息(如密码、密钥)

​2,栈扩展方向的影响

x86栈向低地址扩展pushSP递减,pop时递增。若栈容量不足,越界操作可能覆盖代码段或堆段数据

3,​寄存器的限制

16位系统(如8086)中,SP寄存器最大值为FFFFH(64KB),若栈定义为64KB且空时执行popSP可能从0000H回绕至FFFEH,导致数据覆盖

四、解决方案与防护机制

1,程序员责任

手动管理栈容量​:预估最大栈深度(如递归深度、局部变量大小),分配足够空间

边界检查​:在关键操作前插入检查代码。例如:

; 检查栈是否已满(顺序栈示例)
cmp sp, STACK_BOTTOM
jae stack_overflow_error

​2、硬件与系统级保护

栈边界标记​:预留特定值(如0xDEADBEEF)标记栈边界,运行时检测是否被篡改

不可执行栈(NX位)​​:标记栈内存为不可执行,防止注入代码运行(常见于现代操作系统)

3、​嵌入式系统的特殊处理

在线检测机制​:在DSP等嵌入式系统中,通过中断服务程序实时监控SP位置,触发异常处理(如重启或日志记录)

多级栈保护​:结合虚拟栈帧和硬件保护环,限制栈操作范围

http://www.dtcms.com/a/506528.html

相关文章:

  • 网站程序模板怎么做企业的网站
  • 如何做网站评估分析温州微网站公司
  • 枣阳网站建设公司wordpress 任务插件
  • php订餐网站开发文献纯ajax网站如何做seo
  • 青海设计网站网站建设开发软件有哪些方面
  • 学校网站模板潍坊网站排名
  • 网站网站优化阜阳哪里做网站
  • 江苏省华建建设股份有限网站企业网站推广方案范例
  • 怎么做网页站点网络营销推广的具体做法
  • 各大网站免费观看做pc端网站要多少钱
  • 产品设计优秀网站wordpress 显示微信
  • 网站开发毕业设计书wordpress a
  • 贵州省建设厅考证官方网站重庆网站建设changeke
  • 服装网站建设物流配送系统wordpress文章末尾显示tag标签
  • 网站目录访问电脑培训班零基础网课
  • xml做网站建站行业突破
  • 网站设计计费xiuno wordpress
  • 网站建设教程高清视频建设网站注意实现
  • 怎么用wordpress搭建企业网站工业设计相关网站
  • 公司网站想维护服务器做的好看的统一登录网站
  • 物流网站建设案例征婚网站咋做
  • 网站名称与备案名称不一致黄页88推广多少钱一年
  • 安徽平台网站建设公司上海专业做网站电话
  • worldpress做网站企业简介封面设计
  • 哪些网站设计的高大上做网站公司yuanmus
  • 泉州手机网站建设公司南宁百度seo排名价格
  • 汉口网站建设公司湖南住房和城乡建设网站
  • 网站设计哪家口碑好上海微盟企业发展有限公司
  • 小企业官方网站制作建设部网站城建学院
  • 网站关键词收录查询各大网站的404