首页
社区
课程
招聘
[旧帖] [讨论]发现一个神奇的指令:MOV SP,10H,求指导! 0.00雪花
发表于: 2012-6-10 00:35 2840

[旧帖] [讨论]发现一个神奇的指令:MOV SP,10H,求指导! 0.00雪花

2012-6-10 00:35
2840
今天看别人的贴子,发现了一个神奇的指令,实在是搞不懂了,发出来求指点一二。
这个MOV SP,10H这种指令,居然可以对栈做这么多动作,实在是不解呀
先看一下下面这个简短的汇编文件,定义了一个大小为20H的栈,然后代码段中对SP进行了一次赋值操作。

然后用debug调试这个小程序,反编译下:

先看下加载后没执行时栈里的数据:

执行完mov ax,stack后栈里的数据,红色标出了变化:

再执行一步,哦不对,这里为什么一个-t执行了两步(mov ss,ax; mov sp,10h),大家再看一下变化:

对那些数据的分析发现,其实是CS:IP,SS:BP,11H,0EH,执行第二步以后原先的那个11,0E居然变成了02,33。
这个MOV SP,????H; MOV SS, ?????H为什么会对栈的数据产生这么奇怪的影响呢?
下面是ASM文件和编译后的EXE文件,有兴趣的人可自己调试下看下,我用的MASM中ML版本是6.1,LINK的版本是5.6。

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
会不会是DEBUG干的?
不是什么程序都能用DEBUG调试的,比如b800操作,写入b800的数据会被debug显示的东西覆盖.
2012-6-10 01:52
0
游客
登录 | 注册 方可回帖
返回
//