I wasn't considering "multiple OS's" on the slaved drive. But ok, you
want to consider that situation for some reason - go ahead.
I have 3 versions of linux, win 98, win Xp, and windows 7 rc all
installed in different partitions, on two physical hard drives,
plus another half dozen systems installed in virtual drives.
Different hardware addresses?
Since when does a hard drive appear as a "hardware address" to an OS?
Since always! The bios requires a hardware address to figure out
which drive you want to access. With m$ software, the drive letter
is translated into a device number, and then it uses the fat or
ntfs directory to get a sector address, based on which partition
you are accessing. (Assuming a recent drive controller that uses
lba or lba48 addressig. Older drives required a cylinder/head/
sector address).
M$ chose to use drive letters to id partitions. Take a system with
one hard drive, with one primary partition, and multiple extended
partitions. Add a new hard drive with one primary partition. Surprise,
surprise, the new primary partition becomes drive d:, while what was
drive d: previously, now becomes drive e:. All registry entries that
refer to files on drive d: will now be invalid.
Older versions of linux had similar problems when adding a new device
changed the device name of an existing device (rarely happens).
Current versions use the uuid or label of the partition, to figure out
what partition should be mounted on a given directory name.
If you have a hard drive connected to the first ide channel, with
the jumpers set to master, it will be seen by the bios as drive 80
(hex). If it's connected via a usb external drive, it will be seen
with a different hardware address. Which hardware addresses are
seen as which drive letters, in any m$ os, depends on what was
connected when the system was booted, assuming no bios translation,
or boot loader translation.
If a malware scan of the slaved drive reveals a list of detected
mal-files, and if a scan of the registry of the slaved drive turns up
references to those mal-files, then those registry keys can be deleted
without needing to understand the full-path to the mal-files as it
appears in the registry.
Registry entries use drive letters to figure out the path to the
file. A host os has no way to figure out which drive letters
in a slaved os referred to which drives/ partitions. Since the
host os by definition, has the hard drives connected in a different
order, there is no way to relate drive letters to the correct
partitions.
What if the malware installs it self in drive e:? The registry
entries will all refer to drive e, but the os that has that drive
temporarily slaved as drive j, will not have any way of knowing
what partition the slave os called drive e.
Likewise, if the AM software has it's own list of known mal-files, and
if it normally deletes registry entries containing those files, then
again there is no need to understand full-path to the mal-files as it
appears in the registry.
Again, the os running the am software has no way of knowing which
partitions should correspond to the drive letters in the slave os,
even assuming only one os on the slave drive. What was drive c:
on the slave os may be drive d:, e:, etc, on the host os.
If that's the case, then that would be a technical barrier for AM
software to be able to scan and correct non-host registry files.
Correct. Any AM software trying to scan a slaved drive would have
to be using software developed by m$, or it's developers would have
to reverse engineer every update ever released by m$, to see which
ones changed what is stored in which files to make up the registry.
The malware scanner would have to know which drive(s) were installed
in the slaved os, and what type of hardware connectors were used,
in order to guess which partitions had which drive letters, when
booted from the slave os.
It would be relatively easy to write a malware scanner that assumes
the slave drive only has one partition, that should be treated as
the c: drive, (assuming the registry format doesn't change between
os/service pack levels -- False assumption). While that would handle
the bulk of the systems currently in use, it wouldn't work in any
other cases.
Regards, Dave Hodgins