3737// Current ABI version for linking to the core. This is incremented any time
3838// there are changes to the API that affect linking, including new functions,
3939// new types, or modifications to existing functions or types.
40- #define BN_CURRENT_CORE_ABI_VERSION 135
40+ #define BN_CURRENT_CORE_ABI_VERSION 136
4141
4242// Minimum ABI version that is supported for loading of plugins. Plugins that
4343// are linked to an ABI version less than this will not be able to load and
4444// will require rebuilding. The minimum version is increased when there are
4545// incompatible changes that break binary compatibility, such as changes to
4646// existing types or functions.
47- #define BN_MINIMUM_CORE_ABI_VERSION 134
47+ #define BN_MINIMUM_CORE_ABI_VERSION 136
4848
4949#ifdef __GNUC__
5050 #ifdef BINARYNINJACORE_LIBRARY
@@ -364,6 +364,14 @@ extern "C"
364364 TransformSessionModeOnDemand = 2 , // Proceed step-by-step, requesting input at each stage
365365 } BNTransformSessionMode;
366366
367+ typedef enum BNTransformResult
368+ {
369+ TransformSuccess = 0 ,
370+ TransformNotAttempted = 1 ,
371+ TransformFailure = 2 ,
372+ TransformRequiresPassword = 3
373+ } BNTransformResult;
374+
367375 typedef enum BNBranchType
368376 {
369377 UnconditionalBranch = 0 ,
@@ -4650,26 +4658,31 @@ extern "C"
46504658 BINARYNINJACOREAPI char * BNGetTransformGroup (BNTransform* xform);
46514659 BINARYNINJACOREAPI BNTransformParameterInfo* BNGetTransformParameterList (BNTransform* xform, size_t * count);
46524660 BINARYNINJACOREAPI void BNFreeTransformParameterList (BNTransformParameterInfo* params, size_t count);
4653- BINARYNINJACOREAPI bool BNDecode (
4654- BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
4655- BINARYNINJACOREAPI bool BNEncode (
4656- BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
4661+ BINARYNINJACOREAPI bool BNDecode (BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
4662+ BINARYNINJACOREAPI bool BNEncode (BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
46574663 BINARYNINJACOREAPI bool BNDecodeWithContext (BNTransform* xform, BNTransformContext* context, BNTransformParameter* params, size_t paramCount);
46584664 BINARYNINJACOREAPI bool BNCanDecode (BNTransform* xform, BNBinaryView* input);
46594665
46604666 // Transform Context
46614667 BINARYNINJACOREAPI BNTransformContext* BNNewTransformContextReference (BNTransformContext* context);
46624668 BINARYNINJACOREAPI void BNFreeTransformContext (BNTransformContext* context);
4663- BINARYNINJACOREAPI char * BNTransformContextGetTransformName (BNTransformContext* context);
4664- BINARYNINJACOREAPI char * BNTransformContextGetFileName (BNTransformContext* context);
46654669 BINARYNINJACOREAPI BNBinaryView* BNTransformContextGetInput (BNTransformContext* context);
4670+ BINARYNINJACOREAPI char * BNTransformContextGetFileName (BNTransformContext* context);
4671+ BINARYNINJACOREAPI char * BNTransformContextGetTransformName (BNTransformContext* context);
4672+ BINARYNINJACOREAPI void BNTransformContextSetTransformParameters (BNTransformContext* context, BNTransformParameter* params, size_t paramCount);
4673+ BINARYNINJACOREAPI void BNTransformContextSetTransformParameter (BNTransformContext* context, const char * name, BNDataBuffer* data);
4674+ BINARYNINJACOREAPI bool BNTransformContextHasTransformParameter (BNTransformContext* context, const char * name);
4675+ BINARYNINJACOREAPI void BNTransformContextClearTransformParameter (BNTransformContext* context, const char * name);
4676+ BINARYNINJACOREAPI char * BNTransformContextGetExtractionMessage (BNTransformContext* context);
4677+ BINARYNINJACOREAPI BNTransformResult BNTransformContextGetExtractionResult (BNTransformContext* context);
4678+ BINARYNINJACOREAPI BNTransformResult BNTransformContextGetTransformResult (BNTransformContext* context);
46664679 BINARYNINJACOREAPI BNMetadata* BNTransformContextGetMetadata (BNTransformContext* context);
46674680 BINARYNINJACOREAPI BNTransformContext* BNTransformContextGetParent (BNTransformContext* context);
46684681 BINARYNINJACOREAPI size_t BNTransformContextGetChildCount (BNTransformContext* context);
46694682 BINARYNINJACOREAPI BNTransformContext** BNTransformContextGetChildren (BNTransformContext* context, size_t * count);
46704683 BINARYNINJACOREAPI void BNFreeTransformContextList (BNTransformContext** contexts, size_t count);
46714684 BINARYNINJACOREAPI BNTransformContext* BNTransformContextGetChild (BNTransformContext* context, const char * filename);
4672- BINARYNINJACOREAPI BNTransformContext* BNTransformContextCreateChild (BNTransformContext* context, BNDataBuffer* data, const char * filename);
4685+ BINARYNINJACOREAPI BNTransformContext* BNTransformContextSetChild (BNTransformContext* context, BNDataBuffer* data, const char * filename, BNTransformResult result, const char * message );
46734686 BINARYNINJACOREAPI bool BNTransformContextIsLeaf (BNTransformContext* context);
46744687 BINARYNINJACOREAPI bool BNTransformContextIsRoot (BNTransformContext* context);
46754688 BINARYNINJACOREAPI char ** BNTransformContextGetAvailableFiles (BNTransformContext* context, size_t * count);
@@ -4690,6 +4703,7 @@ extern "C"
46904703 BINARYNINJACOREAPI BNBinaryView* BNTransformSessionGetCurrentView (BNTransformSession* session);
46914704 BINARYNINJACOREAPI BNTransformContext* BNTransformSessionGetRootContext (BNTransformSession* session);
46924705 BINARYNINJACOREAPI BNTransformContext* BNTransformSessionGetCurrentContext (BNTransformSession* session);
4706+ BINARYNINJACOREAPI bool BNTransformSessionProcessFrom (BNTransformSession* session, BNTransformContext* context);
46934707 BINARYNINJACOREAPI bool BNTransformSessionProcess (BNTransformSession* session);
46944708 BINARYNINJACOREAPI bool BNTransformSessionHasAnyStages (BNTransformSession* session);
46954709 BINARYNINJACOREAPI bool BNTransformSessionHasSinglePath (BNTransformSession* session);
0 commit comments