summaryrefslogtreecommitdiff
path: root/python/mediumlevelil.py
AgeCommit message (Collapse)Author
2021-09-05Remove some unnecessary properties for various derived HLIL Instructions, ↵Peter LaFosse
add HLIL vars_read/vars_written Additional progress on HLILInstruction refactor
2021-09-05Refactor Python TypesPeter LaFosse
Remove _mutable types
2021-09-05type hints for highlevelil.py, mediumlevelil.py and lowlevelil.py, workflow.pyPeter LaFosse
Fix linter error in scriptingprovider.py Update workflow.py using updated paradigms and type hints
2021-09-05Fix bug in unit tests. Fix vars_read, vars_written in Intrinsic instructionsPeter LaFosse
2021-09-05Refactor ILs for greater speed and utilityPeter LaFosse
2021-09-05Don't inherit from object anymorePeter LaFosse
2021-09-05Convert the following to dataclasses:Peter LaFosse
AddressRange BoolWithConfidence ConstantReference EnumerationMember FunctionParameter ILFlag ILIntrinsic ILRegister ILRegisterStack ILSemanticFlagClass ILSemanticFlagGroup IndirectBranchInfo InstructionBranch InstructionInfo IntrinsicInfo IntrinsicInput LowLevelILExpr LowLevelILOperationAndSize PossibleValueSet RegisterInfo RegisterSet RegisterStackAdjustmentWithConfidence RegisterStackInfo SSAFlag SSARegister SSARegisterOrFlag SSARegisterStack SizeWithConfidence StackVariableReference StructureMember TypeFieldReference TypeParserResult ValueRange BasicBlockEdge
2021-09-05Refactor RegisterValue class into multiple dataclasses which can be ↵Peter LaFosse
instantiated directly
2021-09-05Refactor Variable classPeter LaFosse
The Variable class is now broken into 3 separate classes with helper methods to convert between them. CoreVariable is implemented as a frozen dataclass and is analogous to BNVariable VariableNameAndType is analogous to BNVariableNameAndType Bothe the above are passive objects and can not be changed directly The new and improved Variable object is now an active object which can be operated on directly and changes will take effect immediately
2021-09-05Add type hints to basicblock.py, lowlevelil.py, architecture.pyPeter LaFosse
2021-07-26Python API : Fix copyright year, add .vars to IL functions, remove ↵KyleMiles
BNGetFunctionILVariables, prevent variables without types (from Mapped MLIL) from erroring out in function.Variable's __repr__, added BNGetLowLevel-Registers, RegisterStacks, Flags, MemoryVersions, and their respective SSA versions, added `LowLevelILFunction`- `.vars`, `.ssa_vars`, `.registers`, `.register_stacks`, `.flags`, `.memory_versions` and ssa versions.
2021-07-07fixed type incides should be indicesGalen Williamson
2021-07-07Added slicing support to __getitem__ in all basic block classesGalen Williamson
2021-04-16add a DisassemblySettings* parameter to MLIL/HLIL functions that retrieve ↵Xusheng
instruction/expr text
2021-01-27Finish HLIL expression mapping APIs.Brian Potchik
2021-01-18updating copyright yearJordan Wiens
2020-11-21Add improved instruction mapping APIs.Brian Potchik
2020-09-27Add High Level IL Mappings.Brian Potchik
2020-05-04Remove APIs that don't actually existRusty Wagner
2020-05-03Fix up equality operators and had hash operatorsPeter LaFosse
2020-01-27better reprs for llil and mlil functionsJordan Wiens
2020-01-27add negative block indexing for fn, mlil, and llilJordan Wiens
2020-01-01update copyright year to 2020Jordan Wiens
2019-12-19Add data flow query optionsRusty Wagner
2019-12-19LLIL_JUMP_TO/MLIL_JUMP_TO now contain mappings from address to destination ↵Rusty Wagner
instruction
2019-11-15Remove useleess settersPeter LaFosse
2019-09-14lots of small documentation updates, mostly around making sure parameters ↵Jordan Wiens
are consistent and typed properly
2019-09-03repr for llil and mlil blocks now uses decimal indexes to match the UIJordan Wiens
2019-08-16add hash method for RegisterValue, MediumLevelILOperationAndSize, and ↵Jordan Wiens
MediumLevelILInstruction
2019-07-03make get_var_definition and get_var_uses return instructions instead of indexesKyleMiles
Co-authored-by: verylazyguy <verylazyguy@hotmail.com>
2019-07-01add contains for LLIL and MLIL basic blocksJordan Wiens
2019-06-27add comparators for MLIL and LLIL instructionsJordan Wiens
2019-06-09remove two breaking changesJordan Wiens
2019-06-08final refactor for missing parametersJordan Wiens
2019-05-31improve API cross-reference linkingJordan Wiens
2019-04-25add type checks for various comparatorsJordan Wiens
2019-04-23add eq for LLIL and MLIL instructionsJordan Wiens
2019-04-22- make get_ssa family functions return instructions instead of indexes (#1315)verylazyguy
2019-03-23Update python/mediumlevelil.pyRyan Stortz
Co-Authored-By: joshwatson <josh@joshwatson.com>
2019-03-23Add __hash__ to IL Function objectsJosh Watson
They didn't have a __hash__ method so I added one so I can use them in sets. It's really just the hash of the Function object plus a string to indicate it's MLIL or LLIL
2019-01-30Fix rebase removing changesRusty Wagner
2019-01-30Prepare API for Python UI bindingsRusty Wagner
2019-01-29Add short alises for low_level_il (llil) and medium_level_il (mlil)Peter LaFosse
2019-01-17update company name and copyright dateJordan Wiens
2019-01-03lots of spelling / typo fixesJordan Wiens
2018-12-13Commonize all InstructionTextToken generationPeter LaFosse
2018-12-12deprecate current_function.medium_level_il in favor of .mlil and move ↵Jordan Wiens
.instructions to mlil instead of main function -- likewise for llil
2018-11-06Forgot the return False at the endJosh Watson
2018-11-06Added __eq__ to MediumLevelILOperationAndSize as wellJosh Watson
2018-10-30Type check SSA variables in __eq__Eric Hennenfent
Instantly bail if we try to compare a SSAVariable to something that isn't an SSA Variable. Prevents the following issue: ``` >>> bv.get_functions_at(here)[0].medium_level_il.ssa_form[96].src[0].src <ssa <var uint64_t rax_2> version 13> >>> type(bv.get_functions_at(here)[0].medium_level_il.ssa_form[96].src[0].src) <class 'binaryninja.mediumlevelil.SSAVariable'> >>> bv.get_functions_at(here)[0].medium_level_il.ssa_form[96].src[0].src == 'rax_2' Traceback (most recent call last): File "<console>", line 1, in <module> File "/Applications/Binary Ninja.app/Contents/MacOS/plugins/../../Resources/python/binaryninja/mediumlevelil.py", line 48, in __eq__ (other.var, other.version) AttributeError: 'str' object has no attribute 'var' ```