还是关于中断的问题(NT系统)(200分)

  • 主题发起人 主题发起人 jhj
  • 开始时间 开始时间
J

jhj

Unregistered / Unconfirmed
GUEST, unregistred user!
还是关于中断的问题

我在Delphi 5/Windows2000中执行以下代码:

//测试中断
procedure TForm1.Button1Click(Sender: TObject);
begin
asm
int 3;
end;
end;

可是每次执行到"int 3"时总是报告异常,我想这是由于
在NT的特权保护机制决定的。可是我用SoftIce查看IDT
表,表中的显示的Int 3,4,2A等的特权级都是3,这意味着
用户级程序可以进行调用。其实这个问题和在Nt/2000中
执行特权指令有项似之处,但为何我从IDT表中得到是用户
级的。
 
int 3 是对硬盘的操作吧。NT 因为是个虚拟机,不允许对硬盘直接操作的。
 
哇哇,说错了。不是硬盘操作,那个是 int 13。扣我分吧。
 
INT 3 是CPU调试中断
 
应该是非法的吧,别说NT内核的2000了,就是9x也不行呵
 
;可是在Delphi5运行的时候,我用另一个程序执行Int3能够执行。
 
我来猜一下:
在delphi集成环境下,int 3被设置指向delphi调试器。
而离开delphi直接运行程序,IDT的3没初始化,所以系统报错了。
 
; 我其实想在NT/2000中获得特权0,这样我就可以执行一些特权指令
(不完全是I/O操作)。有没有不用编写驱动SYS程序就可以的,就如同
CIH病毒在Windows9X中干的一样简单,(我不是想干坏事)。现在我的
程序还不的不用驱动(我用VC+DDK为此专门编了个SYS)。现在真想把这个
SYS扔了,请大家帮个忙。谢谢
 
NT中休想直接调用中断
 
jhj:估计没有结果了,如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部