
   Flash bios!
   +---------+

   Flash Memory : Non-Volatile memory which augments EPROM functionality
                   with in-circuit electrical erasure and reprogramming.

   Flash BIOS   : Flash Memory used for storing BIOS software to allow easy
                   upgrade.
                 
                 - Desmond Yuen, Intel's SL Architecture, 1993.

   Qark's translation : A new place to store virii!


   Non-Volatile memory is like normal memory but when you turn your
   computer off, the stuff you put on it earlier is still there!  But this
   isn't actually useful to us VXers unless the code stored is executed later
   on.  Thanx to Intel this dream is a reality due to the advent of Flash
   BIOS!  This memory is present in 90% of laptop computers, most pentiums,
   most 486 DX2?? and 486DX4?? and also found in some ordinary computers.
   It is always present in the 386SL processor.

   As you all know, (or should do) BIOS is executed when you boot your
   machine.  So, all your average funky VXer has to do is modify the BIOS
   slightly to run your virus before actually booting.

   Imagine the looks on the faces of the AVers when they remove the
   virus from all their boot sectors and files only to reboot and have it
   back again!  Even funnier - they _can't_ boot clean!  Even if they boot
   from a write protected disk the virus will still be there fiddling with
   the interrupts!  They'd probably have to remove their memory and install
   a whole new set to remove the damn thing.  Infact if the memory has been
   surface mounted (welded) they will have to buy a whole new motherboard!

   I'm not quite sure if flash BIOS is mapped or if BIOS shadowing affects
   it at all but I think this will work on most of them... if it doesn't
   infect properly it'll just completely fuck their computer up so that's
   half the job done there :)

   Anyway here is a short algorithm I just made up quickly.  I'm not quite
   sure of what I'm doing but remember that noone has done this before.

        ;This pseudocode assumes it's in a virus executed somewhere.

        Test for flash BIOS
        Test to see if BIOS already infected    (Fuck off if so)
        Read Int19h vector from interrupt table. (The boot interrupt)
        Read first five bytes from the Int19h entry point.
        Scan the BIOS for a buffer of zero's the size of the virus.
        Set Flash BIOS to write mode            (Normally its readonly)
        Write the virus to the buffer we found.
        Write a jump to our virus at the int19h entry point
        Set flash BIOS to read mode
        ;;;

      Ok, that looks like a workable algorithm. (Made it up as I went :)
     
   Int19h is only called during the boot process and it's only purpose
   is to load the boot sector into memory and then execute it.  Thus a good
   interrupt to choose methinks.  By the time its called all the interrupts
   are set and everything is done.

   Also take into account that you can't read and write from flash BIOS at
   the same time.  This means you can't store temporary variables when the
   virus is run, therefore I'd suggest doing the conventional boot sector
   thing and moving it above the memory allocation and setting the int13h to
   it from there.   (This is pretty tough stuff!)

   Anyway, I'll have a go at doing the worlds first Flash BIOS infector
   here is the information you'll need to write your own... the AMI-FLASH!
   (Thanx AMI for this !  We'll put it to good use fucking you up hehe)

   AMI BIOS has it's specification written up for flash BIOSes to use.
   It's based around int16h function 0e0h.  The funny thing is that once
   the virus is loaded it can snatch that function and stop any AV software
   from using it to clean!  hehe then you'll have things like AVers trying 
   to tunnel int16h to get the original vector... and viruses will bung in
   their own anti-tunneling code... and so on...

   It's fucking scarey when you think about it.  You'll have the hardest
   time ever removing one from your memory.  They'll probably have to
   remove their chips and replace them.  hehe and they'll forget one of
   their disks is infected and they'll be fucked again...

   The AMI Flash specification is in another article.
   
   Also check the books : 
   
   Intel's SL Architecture, Desmond Yuen, 1993, McGraw Hill
   
   Dipert,D., and D. Verner, "Designing an Updatable BIOS Using Flash
   Memory,"Intel Corporation, 1991.
   (I wish I had this book, but I ripped this from the references at the
   bottom of chapter 14 in the top one hehe)

                                Qark/VLAD

