[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