鱼C论坛

 找回密码
 立即注册
查看: 2492|回复: 4

请教一个关与实验十二的问题

[复制链接]
发表于 2012-3-18 17:36:01 | 显示全部楼层 |阅读模式
4鱼币
在实验十二中,当我们写好程序,进入dubug运行后,随便写一个溢出的程序就会显示我们自己的中断程序,但如果关掉debug在进入写一个溢出的程序,就不会显示我们的中断程序,这么说中断向量表不是只读存储?    为什么我们能改掉其中的一项,重新进入时又恢复原样?  

最佳答案

查看完整内容

windows里面运行dos是虚拟出来的8086,打开一个dos窗口就会虚拟一次,你在里面操看到的内存地址其实并非内存的真正地址,也就是你第二次使用的dos窗口和第一次的dos没有一点一点联系,如果你在执行完内存中断程序,然后用q命令退出debug程序,记住,这时候别关掉dos窗口,继续用这个窗口运行你的溢出程,你会发现结果还在,而你关掉窗口后dos虚拟的这段内存可能已经被销毁了,而且打开的新的dos程序也不一定会分配到原来的内存空间 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-18 17:36:02 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-18 22:35 编辑

windows里面运行dos是虚拟出来的8086,打开一个dos窗口就会虚拟一次,你在里面操看到的内存地址其实并非内存的真正地址,也就是你第二次使用的dos窗口和第一次的dos没有一点一点联系,如果你在执行完内存中断程序,然后用q命令退出debug程序,记住,这时候别关掉dos窗口,继续用这个窗口运行你的溢出程,你会发现结果还在,而你关掉窗口后dos虚拟的这段内存可能已经被销毁了,而且打开的新的dos程序也不一定会分配到原来的内存空间
你修改的只是dos虚拟出来的中断向量表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-18 18:09:46 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-18 18:15 编辑

中断向量表里的值在修改后重启电脑前都是有效的
朋友,还是先贴出你的代码吧
我估计是你代码里面有些小问题
可能呢是你将中断向量表里面的除法中断的地址指向代码段的地址
你试试我的

assume cs:code
code segment
start:  mov ax,cs
        mov ds,ax
        mov si,offset do0               ;设置ds:si指向源地址
        mov ax,0
        mov es,ax
        mov di,200h                     ;设置es:di指向目标地址
        mov cx,offset do0end-offset do0 ;设置cx为传输长度
        cld                             ;设置传输方向为正
        rep movsb
        mov ax,0
        mov es,ax
        mov word ptr es:[0*4],200h
        mov word ptr es:[0*4+2],0       ;设置中断向量表
         
        mov ax,4c00h
        int 21h
do0:    jmp short do0start
        db 'divide error!'
do0start:mov ax,cs
         mov ds,ax
         mov si,202h                    ;设置ds:si指向字符串
         mov ax,0b800h
         mov es,ax
         mov di,12*160+34*2             ;设置es:di指向显存空间的中间位置
         mov cx,13                      ;设置cx为字符串长度
s:       mov al,[si]
         mov es:[di],al
         inc si
         add di,2
         loop s
         mov ax,4c00h
         int 21h
do0end:  nop
code ends
end start


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-18 22:03:43 | 显示全部楼层

不会呀,重新关掉dos,再进入就恢复原样了,你这个也一样,不信你试下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-19 11:15:23 | 显示全部楼层
知道了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 10:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表