Giter Club home page Giter Club logo

loadprocconfig's Introduction

Overview

LoadProcConfig is an IDA Plugin to load processor configuration files.

With just a couple of clicks configuration files can turn this: Into this, adding memory regions, entries and registers/ports: By default IDA is shipped with configuration files for many processors in IDA/cfg folder. These configuration files are loaded automatically when corresponding processor module is loaded.

However, this approach has some disadvantages:

  1. You have to keep your own configuration files inside IDA
  2. There is no easy way to load and apply configuration file on existing database
  3. Most important, ARM processor module doesn't have configuration file

Current plugin was implemented to address all these issues.

Installation

Just copy LoadProcConfig.pmc and LoadProcConfig.pmc64 to IDA plugins folder.

Usage

From Edit / Plugins menu choose Load Processor Config.
Then open configuration file using the file dialog. IDA will parse this file and display all available devices.
Pick your device and press OK.
Choose what do you want to load from this configuration file. Plugin will reanalyse entire database using device description and create additional memory regions.

Configuration files

There are many configuration files in IDA/cfg folder. While the format has no proper documentation, we can get some ideas by looking into idasdk/module/iocommon.cpp

Every configuration includes following parts:

; Default device in current configuration file
.default MYDEVICE

; Device description
.MYDEVICE

; RAM/FLASH specification
RAM=512
ROM=8192
EEPROM=512

; Memory Map
area DATA I_SRAM    0x00060:0x00260  Internal SRAM
area DATA E_SRAM    0x00260:0x10000  External SRAM

; Interrupts and reset vector assignments 
entry RESET         0x0000   External Reset, Power-on Reset and Watchdog Reset
entry UART_RX       0x0009   UART, Rx Complete

; Registers (with bit fields)
USR                 0x000B   UART Status Register
USR.RXC              7   UART Receive Complete
USR.TXC              6   UART Transmit Complete
USR.UDRE             5   UART Data Register Empty
USR.FE               4   Framing Error
USR.OR               3   Overrun

You can find example for STM32F40x in Configurations folder

loadprocconfig's People

Contributors

alexhude avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.