``class LowLevelILFunction`` contains the list of ExpressionIndex objects that make up a function. ExpressionIndex objects can be added to the LowLevelILFunction by calling :func:`append` and passing the result of the various class methods which return ExpressionIndex objects. LowLevelILFlagC
| 3244 | |
| 3245 | |
| 3246 | class LowLevelILFunction: |
| 3247 | """ |
| 3248 | ``class LowLevelILFunction`` contains the list of ExpressionIndex objects that make up a function. ExpressionIndex |
| 3249 | objects can be added to the LowLevelILFunction by calling :func:`append` and passing the result of the various class |
| 3250 | methods which return ExpressionIndex objects. |
| 3251 | |
| 3252 | |
| 3253 | LowLevelILFlagCondition values used as parameters in the :func:`flag_condition` method. |
| 3254 | |
| 3255 | ======================= ========== =============================== |
| 3256 | LowLevelILFlagCondition Operator Description |
| 3257 | ======================= ========== =============================== |
| 3258 | LLFC_E == Equal |
| 3259 | LLFC_NE != Not equal |
| 3260 | LLFC_SLT s< Signed less than |
| 3261 | LLFC_ULT u< Unsigned less than |
| 3262 | LLFC_SLE s<= Signed less than or equal |
| 3263 | LLFC_ULE u<= Unsigned less than or equal |
| 3264 | LLFC_SGE s>= Signed greater than or equal |
| 3265 | LLFC_UGE u>= Unsigned greater than or equal |
| 3266 | LLFC_SGT s> Signed greater than |
| 3267 | LLFC_UGT u> Unsigned greater than |
| 3268 | LLFC_NEG - Negative |
| 3269 | LLFC_POS + Positive |
| 3270 | LLFC_O overflow Overflow |
| 3271 | LLFC_NO !overflow No overflow |
| 3272 | ======================= ========== =============================== |
| 3273 | """ |
| 3274 | def __init__( |
| 3275 | self, arch: Optional['architecture.Architecture'] = None, handle: Optional[core.BNLowLevelILFunction] = None, |
| 3276 | source_func: Optional['function.Function'] = None |
| 3277 | ): |
| 3278 | if arch is not None: |
| 3279 | self._arch = arch |
| 3280 | self._source_function = source_func |
| 3281 | if handle is not None: |
| 3282 | LLILHandle = ctypes.POINTER(core.BNLowLevelILFunction) |
| 3283 | _handle = ctypes.cast(handle, LLILHandle) |
| 3284 | if self._source_function is None: |
| 3285 | source_handle = core.BNGetLowLevelILOwnerFunction(_handle) |
| 3286 | if source_handle: |
| 3287 | self._source_function = function.Function(handle=source_handle) |
| 3288 | else: |
| 3289 | self._source_function = None |
| 3290 | if arch is None: |
| 3291 | if self._source_function is None: |
| 3292 | raise Exception("Can not instantiate LowLevelILFunction without an architecture") |
| 3293 | self._arch = self._source_function.arch |
| 3294 | else: |
| 3295 | if arch is None: |
| 3296 | if self._source_function is None: |
| 3297 | raise Exception("Can not instantiate LowLevelILFunction without an architecture") |
| 3298 | self._arch = self._source_function.arch |
| 3299 | assert self._arch is not None |
| 3300 | if self._source_function is None: |
| 3301 | func_handle = None |
| 3302 | else: |
| 3303 | func_handle = self._source_function.handle |
no outgoing calls
no test coverage detected