JEB API Documentation

Application Programming Interface documentation for JEB. The API is used to create JEB extensions, plugins, and scripts, in Java or Python (2.7).

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
This package and its sub-packages contain types and interfaces used to build JEB clients and interact with client-specific sides 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 (not back-end events).
Types used to by floating clients to interact with controllers.
Types to interact with the JEB.IO portal.
Facility code to provide implementors of JEB clients a way to offer scripting supports to JEB users.
Types related to telemetry information that can be generated by JEB clients.
The core package and sub-packages define classes and interfaces to interact with and develop JEB back-end plugins.
Support types for actions that units may provide and implementation in order to allow generic access requests.
Data Access Objects types used by the back-end engines to access artifact files, project files, configuration files, and so on.
Simple implementations DAOs that can be instantiated by clients.
Event and notification types used by the back-end.
Custom exceptions generated by the back-end.
Types used by units to read data.
Types to build unit-generated contents in the form of text, table, or tree documents.
Specialized text document useful for code units.
Coordinates system used by code units.
Types for table documents, useful to represent tabular data generated by a unit.
Trivial implementations for the table package interfaces.
Types for text documents, useful to represent textual data generated by a unit.
Trivial implementations for the text package interfaces.
Types to generate tree documents, useful to represent hierarchical data generated by a unit.
Trivial implementations for the tree package interfaces.
Types defining configuration objects, property definition manager, and property manager.
Standard implementation of the properties set of interfaces.
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.
Types to access and interact with the Android Debug Bridge (adb).
Control flow graph classes used by the Android components, including dexdec.
Types representing an 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.
Specific types used by Dex units to render Dex disassembly code.
This package and sub-packages contains 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.
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 as common registers 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 (limtied) 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).
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.
Utility types specific to JEB core, such as unit helper classes.
Utility library.
Basic utility types, used by other utility code.
Collections, such as segments, custom maps/sets/lists, etc.
Types related to concurrency, synchronization, and external code execution.
Types to encode and decode data, including hashes/digests calculator, zip and xml implementations.
CBOR (Concise Binary Object Representation) types.
Jflex usage types.
Actual (concrete) lexers are stored in this package.
JSON types provided by the JSON parser.
JSON parser package.
Custom read-only XML parser implementation, adhering to org.w3.dom.
Zip archive browser facade to access the Oracle, Apache, or other implementations.
Custom read-only Zip archive parser, with the goal of being fast and fault-tolerant.
Types to implement event sources, and event listeners.
Types used to format data to text.
Types used to represent graphs.
Types used to build program interpreters.
Types for I/O operations, such as file writing/reading, file monitors, directory browsing.
Types used access the logging system used by JEB.
Utility code for mathematical operations.
Utility code for network operations.
Utility code operating on primitives.
Reflection 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.