MAP file - what is it?

A MAP file is a file that has the same name as the executable EXE program or DLL / OCX library, but with the MAP extension. This file is created by the linker of the programming language at the stage of compiling the binary program file and contains the names of all the procedures and functions. This file contains importantly addresses in the executable file. Using this information, software protection can provide a selection of functions and procedures for virtualization.

The main advantage of the MAP file, unlike the heuristic search for functions inside the file, is that during the next compilation, when the addresses change, the protection will always know which functions you have chosen for virtualization, because their names usually do not change.

Unfortunately, there is no single way to generate a MAP file, and in different programming environments this is done in different ways. Moreover, the MAP file format itself is fundamentally different for different compilers. Currently DotFix NiceProtect supports the following formats and their derivatives: Embarcadero Delphi / C ++ Builder, GCC (c ++ version and the FreePascal Lazarus compiler), MS Visual Studio and the old version for Visual Basic 5.0 / 6.0. For all these formats, basic decryption (demangling) of names is supported, as well as filtering of potentially unused data for protection (addresses of constants, classes, segments, and so on). Both 32x and 64x bit versions are supported.