diff options
Diffstat (limited to 'example/disasm')
| -rw-r--r-- | example/disasm/callback.py | 6 | ||||
| -rw-r--r-- | example/disasm/dis_binary.py | 4 | ||||
| -rw-r--r-- | example/disasm/dis_binary_ir.py | 4 | ||||
| -rw-r--r-- | example/disasm/dis_binary_ira.py | 4 | ||||
| -rw-r--r-- | example/disasm/dis_x86_string.py | 9 | ||||
| -rw-r--r-- | example/disasm/full.py | 14 |
6 files changed, 31 insertions, 10 deletions
diff --git a/example/disasm/callback.py b/example/disasm/callback.py index 1498b11e..eb999738 100644 --- a/example/disasm/callback.py +++ b/example/disasm/callback.py @@ -2,6 +2,7 @@ from __future__ import print_function from miasm.analysis.binary import Container from miasm.analysis.machine import Machine from miasm.core.asmblock import AsmConstraint +from miasm.core.locationdb import LocationDB def cb_x86_callpop(mdis, cur_bloc, offset_to_dis): @@ -50,8 +51,9 @@ shellcode = ( # Instantiate a x86 32 bit architecture machine = Machine("x86_32") -cont = Container.from_string(shellcode) -mdis = machine.dis_engine(cont.bin_stream, loc_db=cont.loc_db) +loc_db = LocationDB() +cont = Container.from_string(shellcode, loc_db) +mdis = machine.dis_engine(cont.bin_stream, loc_db=loc_db) print("Without callback:\n") asmcfg = mdis.dis_multiblock(0) diff --git a/example/disasm/dis_binary.py b/example/disasm/dis_binary.py index 37eabb14..af140f28 100644 --- a/example/disasm/dis_binary.py +++ b/example/disasm/dis_binary.py @@ -2,12 +2,14 @@ from __future__ import print_function import sys from miasm.analysis.binary import Container from miasm.analysis.machine import Machine +from miasm.core.locationdb import LocationDB fdesc = open(sys.argv[1], 'rb') +loc_db = LocationDB() # The Container will provide a *bin_stream*, bytes source for the disasm engine # It will prodive a view from a PE or an ELF. -cont = Container.from_stream(fdesc) +cont = Container.from_stream(fdesc, loc_db) # The Machine, instantiated with the detected architecture, will provide tools # (disassembler, etc.) to work with this architecture diff --git a/example/disasm/dis_binary_ir.py b/example/disasm/dis_binary_ir.py index ff7a0d36..3facd74b 100644 --- a/example/disasm/dis_binary_ir.py +++ b/example/disasm/dis_binary_ir.py @@ -3,14 +3,16 @@ import sys from future.utils import viewvalues from miasm.analysis.binary import Container from miasm.analysis.machine import Machine +from miasm.core.locationdb import LocationDB ##################################### # Common section from dis_binary.py # ##################################### fdesc = open(sys.argv[1], 'rb') +loc_db = LocationDB() -cont = Container.from_stream(fdesc) +cont = Container.from_stream(fdesc, loc_db) machine = Machine(cont.arch) diff --git a/example/disasm/dis_binary_ira.py b/example/disasm/dis_binary_ira.py index 3ecd5349..bfed3497 100644 --- a/example/disasm/dis_binary_ira.py +++ b/example/disasm/dis_binary_ira.py @@ -4,14 +4,16 @@ import sys from future.utils import viewvalues from miasm.analysis.binary import Container from miasm.analysis.machine import Machine +from miasm.core.locationdb import LocationDB ##################################### # Common section from dis_binary.py # ##################################### fdesc = open(sys.argv[1], 'rb') +loc_db = LocationDB() -cont = Container.from_stream(fdesc) +cont = Container.from_stream(fdesc, loc_db) machine = Machine(cont.arch) diff --git a/example/disasm/dis_x86_string.py b/example/disasm/dis_x86_string.py index 6d4e2c84..b944c6ad 100644 --- a/example/disasm/dis_x86_string.py +++ b/example/disasm/dis_x86_string.py @@ -1,16 +1,21 @@ from __future__ import print_function from miasm.analysis.binary import Container from miasm.analysis.machine import Machine +from miasm.core.locationdb import LocationDB # The Container will provide a *bin_stream*, bytes source for the disasm engine -cont = Container.from_string(b"\x83\xf8\x10\x74\x07\x89\xc6\x0f\x47\xc3\xeb\x08\x89\xc8\xe8\x31\x33\x22\x11\x40\xc3") +loc_db = LocationDB() +cont = Container.from_string( + b"\x83\xf8\x10\x74\x07\x89\xc6\x0f\x47\xc3\xeb\x08\x89\xc8\xe8\x31\x33\x22\x11\x40\xc3", + loc_db +) # Instantiate a x86 32 bit architecture machine = Machine("x86_32") # Instantiate a disassembler engine, using the previous bin_stream and its # associated location DB. -mdis = machine.dis_engine(cont.bin_stream, loc_db=cont.loc_db) +mdis = machine.dis_engine(cont.bin_stream, loc_db=loc_db) # Run a recursive traversal disassembling from address 0 asmcfg = mdis.dis_multiblock(0) diff --git a/example/disasm/full.py b/example/disasm/full.py index 57263a6f..9e739109 100644 --- a/example/disasm/full.py +++ b/example/disasm/full.py @@ -15,6 +15,7 @@ from miasm.expression.simplifications import expr_simp from miasm.analysis.ssa import SSADiGraph from miasm.ir.ir import AssignBlock, IRBlock from miasm.analysis.simplifier import IRCFGSimplifierCommon, IRCFGSimplifierSSA +from miasm.core.locationdb import LocationDB log = logging.getLogger("dis") console_handler = logging.StreamHandler() @@ -75,13 +76,20 @@ args = parser.parse_args() if args.verbose: log_asmblock.setLevel(logging.DEBUG) +loc_db = LocationDB() log.info('Load binary') if args.rawbinary: - cont = Container.fallback_container(open(args.filename, "rb").read(), - vm=None, addr=args.base_address) + cont = Container.fallback_container( + open(args.filename, "rb").read(), + vm=None, addr=args.base_address, + loc_db=loc_db, + ) else: with open(args.filename, "rb") as fdesc: - cont = Container.from_stream(fdesc, addr=args.base_address) + cont = Container.from_stream( + fdesc, addr=args.base_address, + loc_db=loc_db, + ) default_addr = cont.entry_point bs = cont.bin_stream |