From 40192fa7adbf7b53e9d45343b0ae1b47cc5fef86 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Wed, 29 Jul 2015 23:35:48 -0400 Subject: Show basic register data flow information on hover --- binaryninjaapi.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 2d230f6f..df2484df 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -562,6 +562,8 @@ namespace BinaryNinja bool AlwaysBranch(Architecture* arch, uint64_t addr); bool InvertBranch(Architecture* arch, uint64_t addr); bool SkipAndReturnValue(Architecture* arch, uint64_t addr, uint64_t value); + + size_t GetInstructionLength(Architecture* arch, uint64_t addr); }; class BinaryData: public BinaryView @@ -861,6 +863,7 @@ namespace BinaryNinja virtual BNRegisterInfo GetRegisterInfo(uint32_t reg); virtual uint32_t GetStackPointerRegister(); std::vector GetModifiedRegistersOnWrite(uint32_t reg); + uint32_t GetRegisterByName(const std::string& name); virtual bool Assemble(const std::string& code, uint64_t addr, DataBuffer& result, std::string& errors); @@ -1069,6 +1072,14 @@ namespace BinaryNinja Ref GetLowLevelIL() const; std::vector> GetLowLevelILBasicBlocks() const; + size_t GetLowLevelILForInstruction(Architecture* arch, uint64_t addr); + std::vector GetLowLevelILExitsForInstruction(Architecture* arch, uint64_t addr); + BNRegisterValue GetRegisterValueAtInstruction(Architecture* arch, uint64_t addr, uint32_t reg); + BNRegisterValue GetRegisterValueAfterInstruction(Architecture* arch, uint64_t addr, uint32_t reg); + BNRegisterValue GetRegisterValueAtLowLevelILInstruction(size_t i, uint32_t reg); + BNRegisterValue GetRegisterValueAfterLowLevelILInstruction(size_t i, uint32_t reg); + std::vector GetRegistersReadByInstruction(Architecture* arch, uint64_t addr); + std::vector GetRegistersWrittenByInstruction(Architecture* arch, uint64_t addr); Ref GetType() const; -- cgit v1.3.1