JEB API Documentation
Application Programming Interface documentation for JEB Decompiler. The API is used to create JEB extensions, plugins, and scripts, in Java or Python.
All packages are located under the common namespace com.pnfsoftware.jeb:
- The
client.**packages contain client-specific types - The
core.**packages contain back-end types - The
util.**packages contain utility code
To get started, visit the developer portal and check out sample code.
Want to run some code right now?
- Open your JEB GUI client
- Hit F2 to open the Scripts Manager
- Execute
SampleScript.py
Packages
Package
Description
Types and interfaces used to build JEB clients and interact with the client-side parts of a JEB
instance.
Types used by scripts to interact with the analysis results presented by a JEB client.
Types related to client-specific events emitted by JEB clients, as opposed to back-end events.
Types related to the JEB MCP server exposed by JEB clients.
Core back-end APIs used to bootstrap JEB, manage engines contexts and projects, and describe
plugins, artifacts, and related metadata.
Public support types for interactive unit actions, including action identifiers, execution
context objects, and action-specific payload classes exchanged between clients and engines.
Public data-access abstractions used by JEB engines to access file stores, persisted project
data, and related runtime data sources.
Public concrete implementations of the
core.dao abstractions, including in-memory and
filesystem-backed stores as well as JDB2 readers and writers.Event, notification, and event-source types used by the JEB back-end and exposed to clients and
plugins.
Public checked and unchecked exception types raised by JEB Core and its plugins.
Input abstractions and helper types used by units to read binary data from files, byte arrays,
bounded sub-ranges, or lazily provided entries.
Common document, item, and presentation abstractions used by units to expose text, table, tree,
and related visual outputs.
Specialized text-document types and helpers for code units.
Coordinate types used by code units and their rendered code documents.
Table-document abstractions and helpers used to expose tabular unit output.
Basic implementations of the public table-document interfaces.
Text-document abstractions, styling helpers, and utilities used to expose line-based unit
output.
Basic implementations of the public text-document interfaces.
Tree-document abstractions and helpers used to expose hierarchical unit output.
Basic implementations of the public tree-document interfaces.
Public property and configuration abstractions, including configuration storage, property
definitions, property types, and property managers.
Public concrete implementations and utilities for the
core.properties abstractions.Types used to implement and access data identifiers, parsers, code analyzers, disassemblers,
decompilers, and debuggers.
Types related to JEB code plugins, including disassemblers, decompilers, and debuggers.
This package and sub-packages contain all types used by Android code analysis plugins, including
dexdec, the dex decompiler.Types to access and interact with the
Android Debug Bridge (adb).Control flow graph classes used by the Android components, including
dexdec.Types representing Dex structures and Dalvik code.
This package contains types used to publicly access and manipulate JEB's DEX Decompiler (referred
to as
dexdec) Intermediate Representation (IR) objects.Helpers used to compile, match, and replace dexdec IR expression patterns.
Specific types used by Dex units to render Dex disassembly code.
This package and sub-packages contain types used by the native code analysis pipeline, including
gendec (the generic decompiler).Types relating to the disassembler engine.
Control-flow graph types specific to native code.
This package and its sub-packages contain the types used to access
gendec, JEB's generic
decompiler.C AST types, used in AST documents provided by the
source units
generated by gendec.Types specific to
gendec's AST optimizers.C simulator types, used to emulate AST statements.
Specific exception types that may be thrown by
gendec components.Types used to create and access
gendec's IR (Intermediate Representation).Types used by the IR template and IR compiler.
IR emulator facility.
Java bindings and constants for the Unicorn Engine emulator used by the IR emulator.
Types specific to
gendec's IR optimizers.Common types used by
gendec's optimizers.Native code items, including code items and data items.
Types related to mangling and de-mangling of native names.
Types used to represent a virtual memory used when analyzing native code.
Types used to define and represent processors' instructions, operands, and registers.
Architecture-specific information for processors, such as common register bank definitions.
The encoded memory area types can be used to represent some operand encodings.
Types used during the generation of native code disassembly.
Types for library code signatures (siglib) generation and identification.
Types for "code-less" signatures.
Types used for limited native instruction simulation.
Classes and interfaces to access and define native types and related objects, used by JEB's
native code analysis pipeline (including
gendec).Public types and interfaces provided by CUDA fat binary analysis plugins.
Types used by Dart code analysis plugins.
Types used by debugger plugins.
Standard implementations of debugger related interfaces.
Types used to manipulate
dexdec-generated (Dex decompiler) Java Abstract Syntax Tree
(AST) objects.Public types and interfaces provided by the Simatic S7 analysis plugins.
Types specific to Windows operating systems.
Types specific to code objects, such as Windows PE, Linux ELF, or Apple Mach-O.
ELF DWARF specific types.
Standard implementations of basic units objects.
JEB Core-specific utility types, primarily helper classes related to units and engines.
Utility library.
Basic utility types, used by other utility code.
Collections, such as segments, custom maps/sets/lists, etc.
Types related to concurrency, synchronization, timed execution, and external process execution.
Utilities for encoding, decoding, identifying, and validating data, including numeric
conversions, LEB128 readers and writers, MIME type detection, hash calculators, and archive/XML
helpers.
Custom, mostly read-only XML parser implementation that exposes parsed documents through the
org.w3c.dom API.Zip and Jar archive browser facades backed by the JDK, Apache Commons Compress, or the custom
fail-safe reader.
Custom read-only Zip archive parser designed for fast, fault-tolerant reads of standard and
partially malformed archives.
Types to define events, event sources, listeners, and event dispatch helpers.
Types used to format data to text.
Types used to build, inspect, and analyze directed graphs.
Types used to build command interpreters, command trees, execution results, and completions.
Utilities and stream/channel helpers for file, directory, byte-buffer, endian, and archive I/O
operations.
Helpers for configuring and driving conversations with large language model endpoints.
Types used to access the logging system used by JEB.
Utility code for mathematical operations.
Utility code for HTTP(S), proxy, and URL-related operations.
Utility code operating on primitive values and arrays.
Reflection and classpath utility code.
JEB's custom serialization facility (PNF-ORPD).
Annotations used by JEB's serialization facility.
Custom types used internally by JEB's serialization facility.