|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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!!!!!!
|
|