Metadata-Version: 2.4
Name: vba-insight
Version: 0.1.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Rust
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Interpreters
Classifier: Typing :: Typed
Requires-Dist: pytest>=8,<10 ; extra == 'test'
Provides-Extra: test
Summary: Pure Rust static analysis, P-code disassembly, and stomping detection for VBA & Office macros
Keywords: vba,excel,macro,security,stomping,static-analysis,pcode,xlsm,xlsb,docm,pptm
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/ryusui-hiro/vba-retrace
Project-URL: Issues, https://github.com/ryusui-hiro/vba-retrace/issues
Project-URL: Node.js package, https://www.npmjs.com/package/vba-insight
Project-URL: Repository, https://github.com/ryusui-hiro/vba-retrace

# vba-insight (Python)

Pure Rust static analysis, P-code disassembly, and VBA Stomping detection for VBA & Office macros (`.xlsm`, `.xlsb`, `.docm`, `.pptm`, `.xls`, `vbaProject.bin`).

Zero C-library dependencies. Pre-built ABI3 wheels for Linux, macOS, and Windows.

## Installation

```bash
pip install vba-insight
```

## Quick Start

```python
import vba_insight

# Inspect any macro container
report = vba_insight.inspect_file("suspicious.xlsm")

# Check for VBA Stomping / tampering
if report["stomping"]["has_stomping"]:
    print(f"Severity: {report['stomping']['overall_severity']}")
    for finding in report["stomping"]["project_findings"]:
        print(f"Finding: {finding['description']}")

# Export SARIF for GitHub Security / IDEs
sarif = vba_insight.inspect_file_sarif("suspicious.xlsm")

# Export Markdown summary
md = vba_insight.inspect_file_markdown("suspicious.xlsm")
print(md)
```

