FeatureProof banner
juanandresgs juanandresgs

FeatureProof

Development community

Description

FeatureProof is a common sense IDAPython middleware library to ease and future-proof the development of maintainable IDA Pro scripts and plugins

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

FeatureProof

FeatureProof is an aspirational IDA Python common sense middleware library to build pseoducode-like scripts and plugins that resist the radical API shifts (and terrible design) of the IDAPython API.

It's designed to hotload functions as independent modules with multiple implementations and common interfaces. This allows for easy development, debugging, and testing of IDA Pro scripts and plugins with extensibility, compatibility, and maintainability in mind.

At this time, FeatureProof is a work in progress. The library is being parallel developed to support Project 0xA11c (Oxalic), with the intent of expanding its use to other projects in the future.

In its current version, FeatureProof enables IDAPython compatibility with IDA Pro v7.4-8.4. The intent is to expand that support to the new IDALIB API introduced with IDA 9. Backward compatibility with IDA 6.8-7.2 may be possible but not the main objective as it requires supporting Python 2.7 as well.

Design Goals

  • [✅] Autodetect IDA Pro version and transparently adjust the relevant function calls.
  • [✅] List available functions and their compatibility status.
  • [✅] Layout the functions in a modular fashion, using 'require()' hotloading to allow for easy development, debugging, and testing.
  • [✅] Set a function template.
  • [✅] Reach feature parity with FeatureProof beta.
  • [✅] Keep a compatibility table for each function.
  • Port function implementations to IDA 9 / IDALIB.
  • Set a roadmap of desired functions.
  • Consider GUI functions and ready plugin templating.
  • Harvest atomic functions from existing scripts.

Function Template

Create a new file in the Functions directory under the name 'function_name.py'. The file should contain the following template:

The function will be loaded automatically and hotloaded upon changes in case of active development.

If functionality is added back to this repo, please add to the compati