angr.storage.memory_mixins.unwrapper_mixin 源代码
from __future__ import annotations
from angr.state_plugins.sim_action_object import _raw_ast
from angr.storage.memory_mixins.memory_mixin import MemoryMixin
[文档]
class UnwrapperMixin(MemoryMixin):
"""
This mixin processes SimActionObjects by passing on their .ast field.
"""
[文档]
def store(self, addr, data, size=None, *, condition=None, **kwargs):
return super().store(
_raw_ast(addr), _raw_ast(data), size=_raw_ast(size), condition=_raw_ast(condition), **kwargs
)
[文档]
def load(self, addr, size=None, *, condition=None, fallback=None, **kwargs):
return super().load(
_raw_ast(addr), size=_raw_ast(size), condition=_raw_ast(condition), fallback=_raw_ast(fallback), **kwargs
)
[文档]
def find(self, addr, data, max_search, *, default=None, **kwargs):
return super().find(_raw_ast(addr), _raw_ast(data), max_search, default=_raw_ast(default), **kwargs)
[文档]
def copy_contents(self, dst, src, size, condition=None, **kwargs):
return super().copy_contents(_raw_ast(dst), _raw_ast(src), _raw_ast(size), _raw_ast(condition), **kwargs)