diff options
| author | Brian Potchik <brian@vector35.com> | 2024-05-27 15:29:48 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2024-05-27 15:29:48 -0400 |
| commit | a348dab8b14b8ddd36c400ae39a7a48b6a28e829 (patch) | |
| tree | c5aa3b6274b57660d263de44ac1eccc9bfa8739d /binaryview.cpp | |
| parent | 309d606f1c51168c0ef30ccf7850d483429fa35b (diff) | |
Update load APIs to take a JSON string for options.
Diffstat (limited to 'binaryview.cpp')
| -rw-r--r-- | binaryview.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/binaryview.cpp b/binaryview.cpp index 83ed3f3b..b5c34177 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -5316,11 +5316,7 @@ Ref<BinaryData> BinaryData::CreateFromFile(FileMetadata* file, FileAccessor* acc Ref<BinaryView> BinaryNinja::Load(const std::string& filename, bool updateAnalysis, std::function<bool(size_t, size_t)> progress, Ref<Metadata> options) { - BNBinaryView* handle = BNLoadFilename(filename.c_str(), updateAnalysis, - (bool (*)(size_t, size_t))progress.target<bool (*)(size_t, size_t)>(), options->m_object); - if (!handle) - return nullptr; - return new BinaryView(handle); + return Load(filename, updateAnalysis, options->GetJsonString(), progress); } @@ -5336,8 +5332,30 @@ Ref<BinaryView> BinaryNinja::Load( Ref<BinaryView> BinaryNinja::Load(Ref<BinaryView> view, bool updateAnalysis, std::function<bool(size_t, size_t)> progress, Ref<Metadata> options, bool isDatabase) { - BNBinaryView* handle = BNLoadBinaryView(view->GetObject(), updateAnalysis, - (bool (*)(size_t, size_t))progress.target<bool (*)(size_t, size_t)>(), options->m_object, isDatabase); + return Load(view, updateAnalysis, options->GetJsonString(), progress); +} + + +Ref<BinaryView> BinaryNinja::Load(const std::string& filename, bool updateAnalysis, const std::string& options, std::function<bool(size_t, size_t)> progress) +{ + BNBinaryView* handle = BNLoadFilename(filename.c_str(), updateAnalysis, options.c_str(), (bool (*)(size_t, size_t))progress.target<bool (*)(size_t, size_t)>()); + if (!handle) + return nullptr; + return new BinaryView(handle); +} + + +Ref<BinaryView> BinaryNinja::Load(const DataBuffer& rawData, bool updateAnalysis, const std::string& options, std::function<bool(size_t, size_t)> progress) +{ + Ref<FileMetadata> file = new FileMetadata(); + Ref<BinaryView> view = new BinaryData(file, rawData); + return Load(view, updateAnalysis, options, progress); +} + + +Ref<BinaryView> BinaryNinja::Load(Ref<BinaryView> view, bool updateAnalysis, const std::string& options, std::function<bool(size_t, size_t)> progress) +{ + BNBinaryView* handle = BNLoadBinaryView(view->GetObject(), updateAnalysis, options.c_str(), (bool (*)(size_t, size_t))progress.target<bool (*)(size_t, size_t)>()); if (!handle) return nullptr; return new BinaryView(handle); |
