In this part we will discuss the basic framework of a computer virus… The basics of a virus consists of two elementary procedures (others will tell you three). These are:
- a search routine
- a infection routine
- [anti-detection routines]
The search routine
This routine will have to be a more delicate one [but not hard to analyze at all], because as besides the search routine itself we will include file validation two, we will check within this routine if the file is read-only file, not as in some cases in which I saw that the virus search the file, found it and only when trying to infect it he realised that is read-only, and if no check done for it the virus would crash.
The infection routine
The trivial routine in a virus, because we do not need a search routine if we say for example we make a list of wanted to infect files
, this routine (in COM viruses) will only write the whole virus in the host program and write a jump to it at the start of the file… simple don’t you think?
Pseudo-Code Virus
I know it’s the second article and what do you get? only a pseudo-code virus, but be pacient because I’m not so trustful to think that you have already read the book I recommended you in the first part… so wait until the 02h will be out; till then let’s check out our first virus
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
virusName "infant-alfa" virusAuthor "backbone" begin SEARCH: if find_com_file is true then INFECT else SEARCH INFECT: if file_read_only then SEARCH else OPEN_WRITE OPEN_WRITE: write_virus from virusName to FINISH write jump to virusName at start_of_host_program //jump in machine-code = 0e9h if write_ok goto FINISH else SEARCH FINISH: end |
If you don’t like it in pseudo-code, maybe you’ll like it in Pascal, so dowload Dirty Nazi Virus Generator (Password: darknet123) and create a virus to analyze… I didn’t try them out but in theory it should work fine… if you don’t have a pascal compiler you can try freepascal…
What more do I need to know before actually starting to write viruses?
This is an excellent question because even if the actual search and infect routine are simple to build in assembly, the DTA (Disk Transfer Area) is a little hard to understand so i’ll give you a book which will jump in your help (I advice you to read only the DTA part because the rest of it and even more I’ll treat them myself)…
The Little Black Book Of Computer Viruses
Almost forgot to mention, the password to the archive is Ludwig with the big L.
Another bitter end…
So this second part of the Art of Virology which is a bit easier to diggest than the first one, has finally ended. See you next time and hope that by the next chapter you have learned asm and read about the DTA… till then take five…
hobot says
Link doesn’t work.
Full Stomach says
Hi,
Thanks for the series, its greatly appreciated. The book looks interesting on initial glances.
backbone says
hey hobot, have you ever heared of proxyes? :)
this guy says
Not bad article just spend a little more time with the proof reading. grammer needs work and its not ‘pacient’ its patient.
Darknet says
I have fixed the links and hosted the files here.