Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mefistotelis/ida-pro-loadmap

Plugin for IDA Pro disassembler which allows loading .map files.
https://github.com/mefistotelis/ida-pro-loadmap

Last synced: 20 days ago
JSON representation

Plugin for IDA Pro disassembler which allows loading .map files.

Awesome Lists containing this project

README

        

# IDA Pro plugin for loading .MAP symbol files

Loads a VC/Borland/Dede/GCC/IDA `.map` file into IDA Database.

## What is the MAP file

The `.map` file may be generated during compilation, and contain some of debug info (function names, global variables,
in some cases locals as well).

In the past, it was generated automatically by many compilers. For some programs, it was included in a pre-release
version, or even in final release.

Todays compiles still have ability to enable `.map` file generation, ie:

* Watcom linker has `OPTION MAP[=map_file]` command line switch
* GCC linker has `-Xlinker -Map=output.map` command line switch
* Microsoft VC linker has `/MAP[:filename]` command line switch

## More information

See src/LoadMap.cpp for credits, license and changelog.

## Installation

* Copy loadmap.dll to IDA plugins folder
* Open any PE/LE file project
* Click Load MAP with Shift to see options

## Building

The building requires IDA Pro SDK.

To rebuilt the project on Windows using GUI, copy it to IDA SDK `plugins/loadmap` folder, then open SLN file and build it with Visual Studio.

To rebuilt the project from command line, check how the Github Actions do that. You will need some GNU tools including make, and VC compiler from Visual Studio.

## Troubleshooting

If the plugin does not show in "Edit" -> "Plugins", then:
* Make sure you have a code project opened
* Check IDA "Output" console, there should be a message either confirming the load or with error
* If the "Output" console shows "Cannot load certain module", you probably lack Visual C++ Redistributable Package
* Check the "Issues" tab of this project on Github for more info

## Known issues

Currently it doesn't understand MAP files with 64-bit offsets - new versions of GCC produce files with such long offsets.
WA for this is to just remove excessive zeros from offsets in MAP file before loading it.

Currently the tool uses Windows API, so will not work with Linux or Mac OS version of IDA Pro. To fix that:
* reading keys would have to be switched to one from Qt
* memory mapped file usage would have to be implemented (or switched to C++ standard method, when it finally arrives)