miasm
Reverse engineering framework
full Namespace Reference

Classes

class  CustomIRCFGSimplifierSSA
 
class  IRADelModCallStack
 

Functions

def is_addr_ro_variable (bs, addr, size)
 

Variables

 log = logging.getLogger("dis")
 
 console_handler = logging.StreamHandler()
 
 parser = ArgumentParser("Disassemble a binary")
 
 help
 
 nargs
 
 action
 
 default
 
 None
 
 type
 
 False
 
 args = parser.parse_args()
 
 loc_db = LocationDB()
 
 cont
 
 default_addr = cont.entry_point
 
 bs = cont.bin_stream
 
 e = cont.executable
 
 arch = args.architecture if args.architecture else cont.arch
 
 machine = Machine(arch)
 
 mn
 
 dis_engine
 
 ira
 
 ir
 
 mdis = dis_engine(bs, loc_db=cont.loc_db)
 
 dontdis_retcall
 
 blocs_wd
 
 dont_dis_nulstart_bloc
 
 follow_call
 
list todo = []
 
list addrs = []
 
 loc_key = mdis.loc_db.get_name_location(addr)
 
 offset = mdis.loc_db.get_location_offset(loc_key)
 
 done = set()
 
 all_funcs = set()
 
dictionary all_funcs_blocks = {}
 
 done_interval = interval()
 
bool finish = False
 
 entry_points = set()
 
 caller
 
 ad
 
 asmcfg = mdis.dis_multiblock(ad)
 
 instr = block.get_subcall_instr()
 
 all_asmcfg = AsmCFG(mdis.loc_db)
 
list all_lines = []
 
int total_l = 0
 
 key
 
 gen_ir
 
 ir_arch = ir(mdis.loc_db)
 
 ir_arch_a = IRADelModCallStack(mdis.loc_db)
 
 ircfg = ir_arch.new_ircfg()
 
 ircfg_a = ir_arch.new_ircfg()
 
 blocks
 
 head = list(entry_points)[0]
 
 ircfg_simplifier = IRCFGSimplifierCommon(ir_arch_a)
 
 reachings = ReachingDefinitions(ircfg_a)
 
 out = ircfg.dot()
 
 ssa = SSADiGraph(ircfg_a)
 
 simplifier = CustomIRCFGSimplifierSSA(ir_arch_a)
 

Function Documentation

◆ is_addr_ro_variable()

def full.is_addr_ro_variable (   bs,
  addr,
  size 
)
Return True if address at @addr is a read-only variable.
WARNING: Quick & Dirty

@addr: integer representing the address of the variable
@size: size in bits
Here is the caller graph for this function:

Variable Documentation

◆ action

full.action

◆ ad

full.ad

◆ addrs

list full.addrs = []

◆ all_asmcfg

full.all_asmcfg = AsmCFG(mdis.loc_db)

◆ all_funcs

full.all_funcs = set()

◆ all_funcs_blocks

dictionary full.all_funcs_blocks = {}

◆ all_lines

list full.all_lines = []

◆ arch

full.arch = args.architecture if args.architecture else cont.arch

◆ args

full.args = parser.parse_args()

◆ asmcfg

full.asmcfg = mdis.dis_multiblock(ad)

◆ blocks

full.blocks

◆ blocs_wd

full.blocs_wd

◆ bs

full.bs = cont.bin_stream

◆ caller

full.caller

◆ console_handler

full.console_handler = logging.StreamHandler()

◆ cont

full.cont
Initial value:
1 = Container.fallback_container(
2  open(args.filename, "rb").read(),
3  vm=None, addr=args.base_address,
4  loc_db=loc_db,
5  )

◆ default

full.default

◆ default_addr

full.default_addr = cont.entry_point

◆ dis_engine

full.dis_engine

◆ done

full.done = set()

◆ done_interval

full.done_interval = interval()

◆ dont_dis_nulstart_bloc

full.dont_dis_nulstart_bloc

◆ dontdis_retcall

full.dontdis_retcall

◆ e

full.e = cont.executable

◆ entry_points

full.entry_points = set()

◆ False

full.False

◆ finish

bool full.finish = False

◆ follow_call

full.follow_call

◆ gen_ir

full.gen_ir

◆ head

full.head = list(entry_points)[0]

◆ help

full.help

◆ instr

full.instr = block.get_subcall_instr()

◆ ir

full.ir

◆ ir_arch

full.ir_arch = ir(mdis.loc_db)

◆ ir_arch_a

full.ir_arch_a = IRADelModCallStack(mdis.loc_db)

◆ ira

full.ira

◆ ircfg

full.ircfg = ir_arch.new_ircfg()

◆ ircfg_a

full.ircfg_a = ir_arch.new_ircfg()

◆ ircfg_simplifier

full.ircfg_simplifier = IRCFGSimplifierCommon(ir_arch_a)

◆ key

full.key

◆ loc_db

full.loc_db = LocationDB()

◆ loc_key

full.loc_key = mdis.loc_db.get_name_location(addr)

◆ log

full.log = logging.getLogger("dis")

◆ machine

full.machine = Machine(arch)

◆ mdis

full.mdis = dis_engine(bs, loc_db=cont.loc_db)

◆ mn

full.mn

◆ nargs

full.nargs

◆ None

full.None

◆ offset

full.offset = mdis.loc_db.get_location_offset(loc_key)

◆ out

full.out = ircfg.dot()

◆ parser

full.parser = ArgumentParser("Disassemble a binary")

◆ reachings

full.reachings = ReachingDefinitions(ircfg_a)

◆ simplifier

full.simplifier = CustomIRCFGSimplifierSSA(ir_arch_a)

◆ ssa

full.ssa = SSADiGraph(ircfg_a)

◆ todo

list full.todo = []

◆ total_l

int full.total_l = 0

◆ type

full.type