15.04.2018 Views

programming-for-dummies

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

106<br />

Dissecting Programs with a Disassembler<br />

Programming languages, such as Java, C#, and Visual Basic.NET, get compiled<br />

into bytecode <strong>for</strong>mat; there<strong>for</strong>e, a disassembler can reverse compile a bytecode<br />

file into its original source code. So, if you compile a Java program into<br />

bytecode <strong>for</strong>mat, a Java disassembler can convert the bytecode file into Java<br />

source code. Likewise, if you compile a C# or Visual Basic.NET program, you<br />

can disassemble that bytecode file into its original C# or Visual Basic.NET<br />

source code.<br />

To protect their bytecode files from disassemblers, programmers use<br />

another program — an obfuscator. An obfuscator essentially scrambles a<br />

bytecode file. The bytecode file can still run, but if others try to disassemble<br />

an obfuscated bytecode file, they can’t retrieve the original source code.<br />

If you use a <strong>programming</strong> language that compiles into bytecode (such as<br />

Java, C#, or Visual Basic.NET), consider using an obfuscator to protect your<br />

source code from prying eyes.<br />

At the bare minimum, all you need is an editor (to write programs) and a<br />

compiler (to convert your programs into executable files). However, most<br />

programmers use a debugger, a help file creation program, and an installer.<br />

Although most programmers are happy when they can get their program to<br />

work, some programmers use a profiler to help them speed up and optimize<br />

their program.<br />

Finally, some programmers use disassemblers to peek inside the inner workings<br />

of other programs, such as viruses or rival software. Disassemblers are<br />

never necessary <strong>for</strong> creating a program, but they can prove useful <strong>for</strong> legal<br />

and not so legal purposes.<br />

The tools of a programmer are highly subjective. Some programmers swear by<br />

certain tools, such as their favorite editor or compiler, whereas others are happily<br />

with whatever tool is available. Just remember that programmer tools can<br />

help you write faster and more reliable programs, but the best tool in the world<br />

can never substitute <strong>for</strong> decent <strong>programming</strong> skill in the first place.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!