Want to Join Us ?

you'll be able to discuss, share and send private messages.

BIOS ida pro LoadProcConfig by Alex Hide

Discussion in 'Plugins' started by storm shadow, May 19, 2017 at 5:50 PM.

Share This Page

  1. storm shadow

    Techbliss Owner Admin Ida Pro Expert Developer

    Overview

    LoadProcConfig is an IDA Plugin to load processor configuration files.
    With just a couple of clicks configuration files can turn this: [​IMG]Into this, adding memory regions, entries and registers/ports: [​IMG]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.
    [​IMG]Choose what do you want to load from this configuration file. [​IMG]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

    source
    https://github.com/alexhude/LoadProcConfig
     

    Attached Files:

    Last edited: May 25, 2017 at 1:40 PM
    Rip Cord likes this.
  2. Fuzuli

    Member

    Super plugin indeed. Thanks man. You are the best. Could you build windows versions? Please.
     
    Last edited: May 24, 2017 at 8:00 AM
  3. Fuzuli

    Member

    I compiled it for windows by the way.
     
    Rip Cord and storm shadow like this.
Top