Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

It seems that creating viruses, worms ... etc and hacking/cracking software is another realm of programming. It's like the Black Magic of programming. The lack of knowledge about this realm creates misconceptions. To clarify these misconceptions, a programmer should get his hands dirty with this magic. Any suggestions how to learn this magic, or at least understand how it works?

share|improve this question
You should definitely be a pro at assembly language programming. –  Fanatic23 Feb 13 '11 at 11:59
Check out Security.stackexchange.com –  WalterJ89 Feb 13 '11 at 12:36
WalterJ89 - nothing is there –  Saleh Al-Abbas Feb 13 '11 at 15:35
As in other areas, the technology outruns the morals. –  Mike Dunlavey Jul 18 '11 at 13:12
What misconceptions are there? –  Kenneth Jul 18 '11 at 15:02
show 1 more comment

4 Answers

up vote 1 down vote accepted

There's a lot of disconnected material out there. The best place to get it all at once:

"The Giant Black Book of Computer Viruses" by Mark Ludwig, American Eagle Publictions, 1995, ISBN 0-929408-10-1

An ELF Virus writing How-To exists. "ELF" is executable and linking format, the on-disk format that most of all of the free unix-a-likes like Linux, FreeBSD use. That may be your best bet, as you can set up a Linux machine with no monetary cost for the software, and so not have any second thoughts about scrubbing the disk if your experiments get out of hand.

share|improve this answer
add comment

Hacking is a process of find the logical error on a system, and, use it for hacker's purposes. There is no any single book on How to do hacking? If you master in technology on which which, the system runs, then, you can find the logical errors on them.

By studying assembly language, you can learn how a computer works on hardware level (010 level). This will help you to identify bugs on the system. I would suggest reading "Assembly Language Byte by Byte" written by David Y. Wen and grey G. Whipple. It is rather outdated but pay attention to the sections on file structure and work thru the book line by line, example by example. Much of what you need to know has to come thru experimentation and taking notes and paying attention. Also, learn other languages such as Perl, VBScript, and C. Do not limit yourself to just writing viruses, write Internet Worms and Trojans as well and study books on writing code and strive for excellence and bug free code.

Knowledge is the Power, but, don't release virus!

share|improve this answer
After reading the books reviews, I think a good book on Assembly would be "Assembly Language and Computer Architecture Using C++ and Java" (amazon.com/Assembly-Language-Computer-Architecture-Using/dp/…) –  Saleh Al-Abbas Feb 13 '11 at 15:53
add comment

The hard part in all attacks is finding a way to have data executed as code.

There was recently a discussion on slashdot about the Windows Autorun, and how to make the Linux file manager execute data as code. The presentation is an ok introduction to what hoops you have to jump to make this happen.

See http://www.net-security.org/secworld.php?id=10544

share|improve this answer
add comment

For a wide variety of resources, and one of the best tools for building and working with exploits, check out metasploit and the linux distro backtrack. For getting started, check the following links:

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.