如何用Delphi在win95/98下截获中断(200分)

L

lidan10

Unregistered / Unconfirmed
GUEST, unregistred user!
听说要用VXD,用Delphi与API组合不行吗
如果可以,请告诉我怎么实现,如果一定要用VXD,请给我介绍一下他的最基本的概念以及相关的书籍

谢谢
 
是这样的,一般的WIN95应用程序都是工作在ring3级别上的,而系统VXD控制硬件
设备是工作在RING 0级别的,所以如果你真的要去控制中断资源,一定要和
系统 RING 0上的程序打交道, 这时候普通的API都是不行的

只有使用 WIN DDK 开发VXD或调用VXD里的功能才可以做到
应该先调用API里的CREATEFILE,将设备影射为一个系统文件进行操作

因为DDK太复杂,所以说实现要看您自己的功力如何了。
相关的书籍我还没有见到过,好象有本书叫 <<WindowsNT设备驱动开发指南>>
是讲这些的, 其实有关DDK最详细的是 微软的 DDK 开发包里带的帮助了

我手里的WIN95 DDK开发包及说明文档(Tools,Doc,....)大概有80M,太大了,没法邮寄给你
我在北大的FTP里见过,不过现在教育网不好访问,你可以托高校的人帮你
去DOWN,速度还快些
 
lidan10, 你可以到我以前的主页里,我曾在那里放过两份 vxd 的开发文档的
还有前几天 另一个朋友要的开发 vxd 的工具 vtoolsd 也在那里
几个文件加起来有10M,是winzip压缩过的

地址是 http://www.nease.net/~wanghs/program/vtoolsd/

要快去下载哦,我就要删了那几个文件了,否则让网易的WEB MASTER发现了
我的这个HOMEPAGE也要不保了
 
我的答案你能接受么
 
前些天有一个朋友给我Mail问这个问题,由于yahoo的Web邮箱总上不去,所以
一直没有回答,也不知道是不是你。

在VxD级,主要方便的是一些hook之外的拦截(如文件I/O),以及硬件操作。
VxD级的编程,给人的感觉接近于在DOS下写端口操作的汇编码。 :(

如果你的目的是拦截中断,是必须使用VxD的。但是,Win97 API以上已经扩展了
Hook,建议你先看一下Hook List中有没有你想要的。毕竟,写.dll比写.VxD好

另外一条歪路子是成功地用于了EV_Dict(地球树)等动态翻译软件的技术。它的
方法是利用一个未公开的API,取一个函数的入口指针,然后修改这个指针,指
向一段你的处理程序,这个方法接近于DOS下写中断驻留程序。显然这比写VxD要好。因为你大概只要申请一块公用内存块就成了。当然,你得保证你的处理代码
是正确的,否则,嘿嘿……
 
再往下讨论估计到了 如何用delphi写win32病毒了。
haha.
 
如果方便请把DELPHI写VXD的东西MAIL给斑竹,让大家学习学习!
 
Yeah, and I can't download from nease, it is so so SO SLOw, :(
 
我想了解更多关于这方面的问题
 
谢谢各位指教,我前两天出差了,现在才看到。我决定动手干了,如果有不懂
还要向各位请教
 
顶部