鱼C论坛

 找回密码
 立即注册
查看: 1653|回复: 1

小甲鱼老师,直接向你求助了

[复制链接]
发表于 2013-4-24 20:21:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看了小甲鱼那个关于改写中断程序的教学视频,由于看视频的时候,没让我完全看清楚代码究竟是什么。于是,我尝试直接利用DEBUG程序,直接在内存中写入命令。

我的思路是,先在内存中的一个区域内,输入代码,
然后,我转到0000:0000处,改写中断程序的地址,也就是传说中的安全内存区域
然后,我又转到那块安全的内存区域,写了一个中断程序

也不知道为什么,总是失败,纠结
我估计是我把中断程序的地址写错了


我是这样做的的:
所有的命令都是在debug环境下输入的,所以默认的都是十六进制的数字,你懂得
先转到0000:0000内存处
然后输入如下命令
e 0000:0000 00 02 00 00

然后我再在0000:0200处输入如下的命令
db 'error!$'
mov ah, 09
mov dx, 0200        (此处,我有个疑问,因为dos 09号功能是在DS:DX中存放偏移地址的,而我没法保证DS=0000)
int 21  (这个地方,我又有一个疑问,这int指令在这里不就是嵌套中断了么,因为这是在中断程序里,又调用了21号中断)
iret

我也不知道这思路是否可行,但是总是没有成功,求小甲鱼老师亲自指点下呀。、
小甲鱼给我最大的帮助是,能在我不知道如何下手开始学习的时候,给我一点启示,能让我知道学什么,从哪里学
十分感谢,这解决了我这自学党的一大麻烦呀。偶像1!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-4-24 20:22:39 | 显示全部楼层
小甲鱼,这个网页有问题呀,为什么不能输入制表符,还有为什么老师出现上面那个傻傻的笑脸呢。求改进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-7 20:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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