diff options
| author | Brian Potchik <brian@vector35.com> | 2025-10-03 00:31:32 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2025-10-03 00:31:32 -0400 |
| commit | 6e0806b4d18e456ebfb1d1d45b2ccc55713309c8 (patch) | |
| tree | f2c77c27a0a387344fdfbf891af506f2f5c7d707 /binaryninjaapi.h | |
| parent | 416332cc9142ee3f7f6f1b845a45a5657f8333a5 (diff) | |
Add DecodeWithContext method to Transform API layers.
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 9da9f677..bd4f6de5 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -8928,6 +8928,8 @@ namespace BinaryNinja { size_t fixedLength; // Variable length if zero }; + class TransformContext; + /*! Allows users to implement custom transformations. New transformations may be added at runtime, so an instance of a transform is created like @@ -8970,6 +8972,7 @@ namespace BinaryNinja { void* ctxt, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount); static bool EncodeCallback( void* ctxt, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount); + static bool DecodeWithContextCallback(void* ctxt, BNTransformContext* context, BNTransformParameter* params, size_t paramCount); static bool CanDecodeCallback(void* ctxt, BNBinaryView* input); static std::vector<TransformParameter> EncryptionKeyParameters(size_t fixedKeyLength = 0); @@ -8987,6 +8990,7 @@ namespace BinaryNinja { BNTransformType GetType() const; BNTransformCapabilities GetCapabilities() const; bool SupportsDetection() const; + bool SupportsContext() const; std::string GetName() const; std::string GetLongName() const; std::string GetGroup() const; @@ -8995,6 +8999,7 @@ namespace BinaryNinja { virtual bool Decode(const DataBuffer& input, DataBuffer& output, const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>()); virtual bool Encode(const DataBuffer& input, DataBuffer& output, const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>()); + virtual bool DecodeWithContext(Ref<TransformContext> context, const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>()); virtual bool CanDecode(Ref<BinaryView> input) const; }; @@ -9011,6 +9016,8 @@ namespace BinaryNinja { const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>()) override; virtual bool Encode(const DataBuffer& input, DataBuffer& output, const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>()) override; + virtual bool DecodeWithContext(Ref<TransformContext> context, + const std::map<std::string, DataBuffer>& params = std::map<std::string, DataBuffer>()) override; virtual bool CanDecode(Ref<BinaryView> input) const override; }; |
