From 072c5cd6eee7af9671e6c4fe583e77bc3bcbdd1d Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 14 Apr 2020 21:25:41 -0400 Subject: Add IL support to linear view --- binaryninjaapi.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 9d85f616..c91b13c4 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -2962,6 +2962,7 @@ __attribute__ ((format (printf, 1, 2))) void RemoveUserCodeReference(Architecture* fromArch, uint64_t fromAddr, uint64_t toAddr); Ref GetLowLevelIL() const; + Ref GetLowLevelILIfAvailable() const; size_t GetLowLevelILForInstruction(Architecture* arch, uint64_t addr); std::vector GetLowLevelILExitsForInstruction(Architecture* arch, uint64_t addr); RegisterValue GetRegisterValueAtInstruction(Architecture* arch, uint64_t addr, uint32_t reg); @@ -2976,6 +2977,7 @@ __attribute__ ((format (printf, 1, 2))) std::vector GetConstantsReferencedByInstruction(Architecture* arch, uint64_t addr); Ref GetLiftedIL() const; + Ref GetLiftedILIfAvailable() const; size_t GetLiftedILForInstruction(Architecture* arch, uint64_t addr); std::set GetLiftedILFlagUsesForDefinition(size_t i, uint32_t flag); std::set GetLiftedILFlagDefinitionsForUse(size_t i, uint32_t flag); @@ -2983,6 +2985,7 @@ __attribute__ ((format (printf, 1, 2))) std::set GetFlagsWrittenByLiftedILInstruction(size_t i); Ref GetMediumLevelIL() const; + Ref GetMediumLevelILIfAvailable() const; Ref GetType() const; Confidence> GetReturnType() const; @@ -4990,6 +4993,13 @@ __attribute__ ((format (printf, 1, 2))) Ref GetChildForOrderingIndex(uint64_t idx); static Ref CreateDisassembly(BinaryView* view, DisassemblySettings* settings); + static Ref CreateLiftedIL(BinaryView* view, DisassemblySettings* settings); + static Ref CreateLowLevelIL(BinaryView* view, DisassemblySettings* settings); + static Ref CreateLowLevelILSSAForm(BinaryView* view, DisassemblySettings* settings); + static Ref CreateMediumLevelIL(BinaryView* view, DisassemblySettings* settings); + static Ref CreateMediumLevelILSSAForm(BinaryView* view, DisassemblySettings* settings); + static Ref CreateMappedMediumLevelIL(BinaryView* view, DisassemblySettings* settings); + static Ref CreateMappedMediumLevelILSSAForm(BinaryView* view, DisassemblySettings* settings); }; class LinearViewCursor: public CoreRefCountObject