Newbies Corner: "You must touch it or you won't get good at it!" So you've found that you have an interest in writing viri. You are already to go except for one or two small details. You don't know how to program and you have no idea where to start. The good news is, since you are obviously reading this right now, you may find a clue or two by the time you get to the end. You should not feel to bad for not knowing what to do first. It is true that until someone tries something and then tells or shows someone else how to do that something, the people who didn't try it in the first place won't know what to do until they are shown the way. Step 1 to becoming a cool hacker/virus writer/programmer/anything type person is to try to be more and more like those who try it first. Your mind was probably in the gutter when you first read the title of this article, but now you may be able to see where I am heading. Don't be the guy in all the news groups and chat rooms that is always asking, "How do I do this?" and "What happens if I do that?". Don't get me wrong. It is alright to ask for help. The difference is trying and failing, researching and failing, and testing and failing and then asking for help as opposed to not even making an attempt at trying and then asking for help. What you will find is that after trying, researching, and/or testing, you will often be the source of answers for your own questions. There are even variations on this. I will give myself as an example. I have a bad habit of reading and researching and reading more and researching more. What this tends to do is overload my mind with information that doesn't always stick to well because I have no experience that makes the information meaningful. I read and read about how to use the group pseudo-op in assembler in order to sort of mesh the data segment and code segment into one segment. That was all fine and good until I actually tried to write something. The good thing is, I made myself try it before getting help from outside sources. I wound up figuring it out on my own. I learned quite a bit in the process too. That is one of the wonderful things about trying things on your own. When you work to hit a goal, you usually will pick up valuable information and/or experience on the way. There are a handful of ways to get started on programming viri. The avenue I took was to get a bunch of books and start reading. Note: If you start out this way, don't wait forever to start actually coding. I am trying to drill in you the point that you should get hands on experience because it is that which will give you the most skill. It is good to read and research, but it is better to actually do it. Both together make for very good results. Another way to get started is to join a good virus writing group such as the Codebreakers. Don't just join any old group. Make sure to read their mission statement so you can see what there goals are. A group like the Codebreakers will be one that is out to teach and make available knowledge of much, but in this case, mostly information on how to write viri. You will find that some groups are out to cause destruction and act with malicious intent. Virus writing does not have to mean writing code that will delete someone's files or be the cause of loss of data. It can be a way to gain a deeper understanding of how computers work. It can be a way to express yourself or be artistic. Some programmers do not see writing programs as a form of art or expression, but I disagree. A lot of virus writers use assembly to write their programs. It is very impressive to be able to tell people that you program in assembly. The only downside to that is some people immediately associate you with malicious virus writers when they find out that you work with assembly. When you are part of a group of virus writers, you tend to get exposed to different forms of virus writing and programming. You will likely see Word macro viri, assembly viri, C and C++ viri, and basically anything you can program with. I knew someone who could write viri in dBASE. The point here is that if you are part of a good virus writing group, you have access to a well of knowledge. One of the first things you should do to get started on virus writing is to look at other peoples code. It is not dishonest as long as you learn from it and don't pirate it. It is possible for someone to be experienced with programming and not have the first idea how to write a virus. The best way to get some ideas is to look at virus code. The more code that you can find with comments and explanations in it, the better. Code that is not commented won't tend to help you much until you get a little experienced with virus writing. If you are not used to looking assembly code, you might as well be trying to read a foreign language. As a matter of fact, that is what assembly is to someone who has not learned how to program with it. Comments and description of code is endlessly helpful in the beginning learning stages. After a while, you will learn to read the code without relying on comments and in some cases, the comments will get in the way. Whatever you do, don't run a virus that you have downloaded. It should be obvious why. If you are lucky enough to know someone who has experience programming, they can help you a ton. Even luckier than that, if you know someone who has experience writing viri, you have got it made. In most cases though, this is not the case. The best approach, above all, is to combine your resources. Get some literature, download virus code, join a good virus writing group, and most importantly...touch it or you won't get good at it. Finding virus code is easy. You can basically use your favorite search engine to locate virus links. To find a good virus writing group, you can do the same, but be sure to discriminate in order to find the right group for you. My intent for writing this article is to help people find information, not to help them find a catalyst for destruction. To get started coding right away, you do not need to purchase a compiler. You can download a bunch of different compilers from the net. I like to use tasm, but other people like to use A86, masm, or something of the like. Again, you can find one that you like simply by searching the web for assemblers. As far as books go, if you don't have a lot of money, don't be afraid to use the library. I personally did not have much luck finding good books on assembly, but I think that may be because of the area I am in and the libraries that I tried. I was lucky enough to happen across a bunch of books that turned out to be a great source of knowledge. Some good ones that you may want to start off with are books by Peter Norton such as "Peter Norton's Assembly Language Book for the IBM PC". He tends to lean towards .com programs more than anything else from what I noticed. Books from the Waite Group tend to be real good about putting things in to context that you can understand. Especially if you can find ones written by Robert Lafore like the "Assembly Language Primer for the IBM PC & XT. He is sort of the opposite of Norton in that he likes to show you how to write .exe programs. A book that is really good for getting to know your PC and learning good assembly code structure is the "Advanced MS DOS Programming" book. It is a Fabulous resource. One other book I will mention is "Advanced Assembly Language" by Allen L. Wyatt, Sr. This book is good for getting into TSR programming, drivers, and serial communications. Now go start coding. Until next time... PLAY HARD! But, be nice. by: AmadEUS