
This book describes how software code analysis tools such as IDA Pro are used to disassemble programs written in high-level languages and recognize different elements of disassembled code in order to debug applications in less time. Also described are the basics of Assembly language programming (MASM) and the system and format of commands for the Intel microprocessor. Aspects of disassembling, analyzing, and debugging software code are considered in detail, and an overview of contemporary disassemblers and debuggers used when analyzing executable code is provided. The basics of working with these tools and their operating principles are also included, and emphasis is placed on analyzing software code and identifying the main structure of those languages in which they were written.
Modifying somebody else's code is unethical and even may be illegal. Long ago, when MS-DOS was the prevailing operating system, I wrote a small resident printer driver. At that time, the problem of localizing code or reencoding printers was urgent. One year later, I located my driver in use by some other company. This driver was installed by a Mister X. However, Mister X didn't limit himself to installing the driver. That person also modified the copyright information, specifying that the driver's author was himself. I do not feel angry about that occasion anymore, although a feeling of resentment still remains. Thus, I understand very well the feelings of software developers whose programs have been illegally reverse-engineered and modified.
