Future Techniques
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Polymorphism:
It is possible to read/write to the code of a PE virus, therefore
polymorphism will continue to exist as part of the virus writers
repetoire under Win95. Although, polymorphic routines will
change slightly to produce 32 bit code.
Entrypoints:
The PE executable has a weakness due to the numerous relocations
inside it. It would be possible to get an API function such as
ExitProcess or PostQuitMessage and change the import table entry
for it, to point to the virus exit. The original relocation address
can be replaced to point to the virus entry instead. When an
application quits, the virus will be run instead. In this way
the "Entry Point RVA" doesn't need to be modified to gain control
during running of the program, which makes the task of virus detection
very cumbersome because every entry point would have to be scanned.
Memory Residence:
The technique described above can be used to advantage as a sort of memory
residence. If a virus direct action infected KERNEL32.EXE and took
control of the KERNEL function CreateProcessA, it could infect every
file as it was executed.
Using API functions such as GlobalAlloc could provide a means for proper
memory allocation, or else modifying the 386 "Descriptor Tables" manually.
Low-Level:
All Win95 applications run at Ring-3. At this level a program can't
do such things as read/write to hardware ports directly. Ring-0
has full control of the system. For information on how to gain Ring-0
in Win31 get the file RING0.EXE from /softlib/MSLFILES on
ftp.microsoft.com. The code in this small example is not truly
applicable to win95. It uses int 2f calls to modify descriptors, this
is not possible under win95 as interrupts cannot be accessed.
Real Mode:
It could be possible to switch the processor back to real-mode using
low-level instructions, and use interrupts from there. This would
require some hole in the win95 defense system...
Vxd's:
Vxd's existed under win31 and they still exist under win95. Vxd's run
at ring 0 and thus have as much access to the system as the kernel.
Although safe guards are in place to stop vxd's from running rampant,
a vxd can do just about anything it wants, including changing
selectors and descriptor tables. You can expect to see lots of
information on vxd's in future.
- VLAD #6 INDEX -