Sha256: a2436f7f43336f7e1d20b87dc05b433070aa6efd8f043c9e97c64b3da5c5cc2f

Contents?: true

Size: 1.81 KB

Versions: 80

Compression:

Stored size: 1.81 KB

Contents

# Mario Vilas, http://breakingcode.wordpress.com
# Licensed under BSD in 2016

# Example code

import distorm3
import sys
import optparse

# Parse the command line arguments
usage  = 'Usage: %prog [--b16 | --b32 | --b64] filename [offset]'
parser = optparse.OptionParser(usage=usage)
parser.add_option(  '--b16', help='80286 decoding',
                    action='store_const', dest='dt', const=distorm3.Decode16Bits  )
parser.add_option(  '--b32', help='IA-32 decoding [default]',
                    action='store_const', dest='dt', const=distorm3.Decode32Bits  )
parser.add_option(  '--b64', help='AMD64 decoding',
                    action='store_const', dest='dt', const=distorm3.Decode64Bits  )
parser.set_defaults(dt=distorm3.Decode32Bits)
options, args = parser.parse_args(sys.argv)
if len(args) < 2:
    parser.error('missing parameter: filename')
filename = args[1]
offset   = 0
length   = None
if len(args) == 3:
    try:
        offset = int(args[2], 10)
    except ValueError:
        parser.error('invalid offset: %s' % args[2])
    if offset < 0:
        parser.error('invalid offset: %s' % args[2])
elif len(args) > 3:
    parser.error('too many parameters')

# Read the code from the file
try:
    code = open(filename, 'rb').read()
except Exception as e:
    parser.error('error reading file %s: %s' % (filename, e))

# Print each decoded instruction
# This shows how to use the Deocode - Generator
iterable = distorm3.DecodeGenerator(offset, code, options.dt)
for (offset, size, instruction, hexdump) in iterable:
    print("%.8x: %-32s %s" % (offset, hexdump, instruction))

# It could also be used as a returned list:
# l = distorm3.Decode(offset, code, options.dt)
# for (offset, size, instruction, hexdump) in l:
#     print("%.8x: %-32s %s" % (offset, hexdump, instruction))

Version data entries

80 entries across 80 versions & 1 rubygems

Version Path
contrast-agent-7.6.1 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.6.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.5.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.4.1 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.4.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.3.2 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.3.1 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.3.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.2.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.1.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-7.0.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.15.3 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.15.2 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.15.1 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.15.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.14.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.13.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.12.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.11.0 funchook/distorm/python/distorm3/sample.py
contrast-agent-6.10.0 funchook/distorm/python/distorm3/sample.py