[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CryptoStacker, long
RYAN Alan Porter (unrelated AFAIK) asks:
> 2) How the hell to intercept the read/write routines?
I can help with the guts of DOS, BIOS, network interfaces, etc.
My development time is committed, but feel free to email me with
questions, folks.
The simplest approach is probably Microsoft's Network Redirector
interface. It's used for MSCDEX, and just about every LAN OS
except Novell's, including Microsoft's own LAN Manager. A good
reference is "Undocumented DOS" by Andrew Schulman et al. This
is the only option discussed here I haven't used personally. It
looks ideal for this application.
Another possibility is hooking the DOS API itself. This
certainly works well; it's the way Netware does it. I've found
it a lot of work. See IBM's "Disk Operating System" manual for
details. There was a mainframe manual by the same name, so be
sure you're getting the PC version.
Just under DOS itself is what Microsoft officially refers to as
Device Drivers. Device drivers actually can be hooked in at many
levels, of course, not just here. In this context MS calls disk
drives "block devices". Block device drivers, or character
device drivers for that matter, are not at all tough to write.
They're probably a good second choice after the Network
Redirector. A reference is the book "Writing MSDOS Device
Drivers" by Robert Lai.
DOS internally often calls software interrupts 25 and 26 for
disk io. These are apparently inconsistent from DOS version to
version. Skip this layer. If you need to go this far down, go
all the way to INT 13.
The lowest level of disk io short of hardware is INT 13. A good
reference is Phoenix's "CBIOS Reference Manual". Watch out for
quirks in INT 13's stack handling.
There's also a good bit you have to do to keep DOS and your
driver from tripping over each other. Unless others feel it's
appropriate to use this bandwidth, email me for details.
Doug