diff options
| author | bambu <bambu@revengsec.com> | 2016-07-02 14:34:31 -0400 |
|---|---|---|
| committer | bambu <bambu@revengsec.com> | 2016-07-02 14:34:31 -0400 |
| commit | 46fe170c40dd0de44b83ebbce673462b5de8760c (patch) | |
| tree | 104943992de2f194c7e2c6cf46f3153b98fbb133 /function.cpp | |
| parent | 5abb8218e5cd2be9b4cefb16eebdee6caf8108c6 (diff) | |
| parent | a7eaa72caa4a5e3e7cd7ea7c32236c93b06d1442 (diff) | |
Merge remote-tracking branch 'upstream/dev' into dev
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp index 70cbfe2a..ea0fec86 100644 --- a/function.cpp +++ b/function.cpp @@ -196,6 +196,50 @@ RegisterValue Function::GetRegisterValueAfterLowLevelILInstruction(size_t i, uin } +RegisterValue Function::GetStackContentsAtInstruction(Architecture* arch, uint64_t addr, int64_t offset, size_t size) +{ + BNRegisterValue value = BNGetStackContentsAtInstruction(m_object, arch->GetObject(), addr, offset, size); + return GetRegisterValueFromAPIObject(value); +} + + +RegisterValue Function::GetStackContentsAfterInstruction(Architecture* arch, uint64_t addr, int64_t offset, size_t size) +{ + BNRegisterValue value = BNGetStackContentsAfterInstruction(m_object, arch->GetObject(), addr, offset, size); + return GetRegisterValueFromAPIObject(value); +} + + +RegisterValue Function::GetStackContentsAtLowLevelILInstruction(size_t i, int64_t offset, size_t size) +{ + BNRegisterValue value = BNGetStackContentsAtLowLevelILInstruction(m_object, i, offset, size); + return GetRegisterValueFromAPIObject(value); +} + + +RegisterValue Function::GetStackContentsAfterLowLevelILInstruction(size_t i, int64_t offset, size_t size) +{ + BNRegisterValue value = BNGetStackContentsAfterLowLevelILInstruction(m_object, i, offset, size); + return GetRegisterValueFromAPIObject(value); +} + + +RegisterValue Function::GetParameterValueAtInstruction(Architecture* arch, uint64_t addr, Type* functionType, size_t i) +{ + BNRegisterValue value = BNGetParameterValueAtInstruction(m_object, arch->GetObject(), addr, + functionType ? functionType->GetObject() : nullptr, i); + return GetRegisterValueFromAPIObject(value); +} + + +RegisterValue Function::GetParameterValueAtLowLevelILInstruction(size_t instr, Type* functionType, size_t i) +{ + BNRegisterValue value = BNGetParameterValueAtLowLevelILInstruction(m_object, instr, + functionType ? functionType->GetObject() : nullptr, i); + return GetRegisterValueFromAPIObject(value); +} + + vector<uint32_t> Function::GetRegistersReadByInstruction(Architecture* arch, uint64_t addr) { size_t count; |
