|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大大们你们好,麻烦老师们帮我解决下一个问题,关于第三章3.2的检测点问题,请问下,我先告诉下我的操作步骤吧,我首先是在debug里给内存修改数据的,用E命令修改了10000----1000F这段的数据,这道题用不到CS段,我先附上debug截图吧
这里的ds=17b9,不管它,代码执行是cs=17b9 IP=0100,在这里我试了好几次,我把IP都改成0过,还是一样错误,
现在下面我看是编写汇编指令
17B9:0105是指令开始执行的地方,跟CS和IP一样,可以用U来看下反汇编的指令,可是在这段汇编中
只给了DS,而没有给数据段一个adreess地址【偏移地址】,已经定义了栈段【20000---20010】,这里为什么是20010,
因为给内存规划了一个栈段【空栈】,大家应该知道sp-2,小甲鱼老师说过的,
在这里我用T命令来运行指令下图:
直到指令执行完毕,,我晕,debug窗口直接跳掉了,无语,再来,
再执行又给OUT出去了,无语,对系统有害了,再继续,又跳了,天啊,难道要改下cs跟IP地址吗,,
哎,还是请老师看看吧,我执行所有指令后,用D命令查找了20000:0的内存单元数据,里面没有数据全部为0,
说明数据没有push进去,,这里我就不明白了,这里的为什么只给DS段地址,而没有偏移地址,这么让cpu知道要入栈的这个数据段的数据呢,请老师们指点迷津啊,我试了N次了,都没有实现,只好请老师们受教。谢谢。
|
|