-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -=-=-=-= =-=-=-=- -=-=-=-= The beginner viruswriter's toolbox =-=-=-=- -=-=-=-= =-=-=-=- -=-=-=-= Kalkin/EViL =-=-=-=- -=-=-=-= =-=-=-=- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Haven't seen any of those lately so here's one. OK, that's what you as a beginner viruscoder need (purely my opinion): - a computer (doesn't have to be your own, just one you can mess with). Perfect would be if it's a 2nd (or 3rd) machine which carries no important/expensive stuff. Should be equipped with a common OS (Win9x/2K/NT, Linux, even MacOS, just not DOS coz this one's dead) and a harddrive large enough to contain all the following stuff. - a programming environment (NASM/ALINK, MASM, TASM32/TLINK32, Visual BASIC, Delphi, C++, HIEW (if you're an ASM guru), whatever, even Word or Excel) - some material about the chosen programming language (Win32 API reference or 'how to write advanced HTML' for example). - some material about the target format (description of PE/NE/LE/LX EXE, HTML, ARJ/RAR/ZIP/ACE/LZH archives, ELF, etc.). - a good/fast text editor if you stick with ASM, VBS or HTML (or when you don't like the IDE of others). - a debugger. As 'the virus' is a somewhat advanced piece of code (sortof) then you'll probably need to debug it a little bit to get it working the way you want it to (or if you want to test the virus' anti-debugger code). SoftICE is by far the best there is but it's somewhat hard to come by. A second choice could be TR for Win. If you stuck with DOS (against my advice) then use TR for DOS or DeGlucker. - a dissembler is optional because most of the Win viruses are distributed as source code so there's no need to mess with the binaries. But if you really want then W32Dasm is quite popular. For DOS: the once famous Sourcer is really good. - a good hex editor might come handy (I don't use Win so I can't recommend any :( but for DOS there're HIEW/BIEW/QVIEW). - every piece of vx-zine you can get. Even in the lamest/smallest one you might find something useful/interesting/informative. - every AV (might it be a TSR/VXD/runtime scanner, cleaner or blocker) for the target OS you can find. Firstly just to see how good is your virus generally compared to the AVs so you could improve it. And for second (in case you plan to spread your creation): you can never know that this dude who's exotic blocker stopped your virus wouldn't have infected another million computers. If you can find one then get your hands on a scanner which lets you add new signatures (for cases when your new virus breaks free in your own system or you want to impress a really nice girl :) - VSUM, AVPVE, Viren Bibel, F-Prot 2.x and every other virus encyclopedia. You might find some good ideas from them and take care that the name of your virus is unique. - VDAT to get information about every group/mte/zine there is, was or will ever be... - article 'Naming your virii'. I don't remember the author nor the zine where it was published but it lists the points which you should keep in mind when choosing the name for your creation (or don't you want AV and the rest of human kind to call your virus with the name YOU picked?) - every source you still don't have after getting all those zines - all compiled viruses you can find (you probably have your own viruses laying on the HD anyway so why not make them the first in your collection). - if you decided to begin collecting then you need a virus sorting utility. VS2000 is not bad for this purpose. From own experiences I can recommend Tally's Virus Keeper 1 for virus maintaining. - a backup program or archiver for your documents (if your programs are not on CDs then you'll need to backup them too), coz, quotation from 40hex, "We all fuck up sooner or later". - a hex calculator (or the corresponding software) can be useful - Internet access. It should actually have been the second (or even first) point, coz you can get everything else from the Net (even the computer :) - a brain (useful not only in virus coding) although it's not necessary :) - the will to learn, so you won't be a wannabe/ripping lamer till the end of your VX-career - common sense to be careful so CIH 4000 (which you've just coded) wouldn't blow up your own computer or if it wipes the HD of every major server on the Net you won't get caught - a sense of humor, so you wouldn't take it all to seriously and wouldn't 'crash' just because some people think that you're the anti-Christ now or because you have a little more HD crashes (the last is optional :) Humor also helps against thoughts to use viruses to destroy Pentagon or conquer the world :) - anything else which could be useful for creating a coding environment (Coca Cola, a sandwich, Marilyn Manson screaming through the speakers, Stargate SG-1 from TV or a broken TV, whatever...)