reverse-engineering is a great example of hacking code. if you get your hands on some software that isn't open-source, you can reverse-engineer the software using what is called a "dis-assembler." a dis-assembler takes the compiled .exe and .dll files of a program and translates the machine code into its corresponding "assembly" language. the result can be very difficult to understand considering that the dis-assembler cannot recover the program's original variable/function names or comments, therefore it probably won't look much like anything a human being wrote, not to mention these programs typically consist of thousands of lines of code. proficient programmers can still manage to figure out what the code does, and they use these dis-assemblers as well as "hex editors" to reverse-engineer and hack copyrighted software. this is how people are able to create key generators, cracks (to use expensive software for free), or simply to find flaws in poorly written code. of course, it is also used to find ways to stop computer viruses.
pretty nifty, eh?
dll files are libraries of functions that software can use, and so can you in dos using the rundll32 command. for example, rundll32 printui.dll, printuientry /k /n \\comp\printer. alter the underlined part with your info.