about summary refs log tree commit diff stats
path: root/example
diff options
context:
space:
mode:
authorAymeric Vincent <aymeric.vincent@cea.fr>2015-10-27 21:27:27 +0100
committerAymeric Vincent <aymeric.vincent@cea.fr>2015-10-27 21:27:27 +0100
commit5dbf046bbe07a28485a84eca14405d271d1ea7fa (patch)
tree5cabdd356882f4d2606a02cc0ed468894f68a586 /example
parentfb32efb74e2dc1077586a2214de558db6940b70b (diff)
downloadmiasm-5dbf046bbe07a28485a84eca14405d271d1ea7fa.tar.gz
miasm-5dbf046bbe07a28485a84eca14405d271d1ea7fa.zip
In interactive use, allow C-like prefixes to choose the base of integers
Use Python's int(s, 0) to allow string "s" to specify its base where
addresses and offsets can be supplied.
This change makes the situation homogeneous among the various examples and
interactive usage.
Diffstat (limited to '')
-rw-r--r--example/disasm/file.py2
-rw-r--r--example/disasm/full.py5
-rw-r--r--example/jitter/mips32.py2
-rw-r--r--example/jitter/msp430.py2
-rw-r--r--example/symbol_exec/depgraph.py4
5 files changed, 8 insertions, 7 deletions
diff --git a/example/disasm/file.py b/example/disasm/file.py
index 3555ab18..1a22dfe7 100644
--- a/example/disasm/file.py
+++ b/example/disasm/file.py
@@ -9,7 +9,7 @@ if len(sys.argv) != 3:
     print "%s samples/box_upx.exe 0x407570" % sys.argv[0]
     sys.exit(0)
 
-addr = int(sys.argv[2], 16)
+addr = int(sys.argv[2], 0)
 cont = Container.from_stream(open(sys.argv[1]))
 mdis = dis_x86_32(cont.bin_stream)
 # Inform the engine to avoid disassembling null instructions
diff --git a/example/disasm/full.py b/example/disasm/full.py
index b813e4fa..db12c45b 100644
--- a/example/disasm/full.py
+++ b/example/disasm/full.py
@@ -43,7 +43,8 @@ parser.add_argument('-l', "--dontdis-retcall", action="store_true",
                     help="If set, disassemble only call destinations")
 parser.add_argument('-s', "--simplify", action="store_true",
                     help="Use the liveness analysis pass")
-parser.add_argument('-o', "--shiftoffset", default=None, type=int,
+parser.add_argument('-o', "--shiftoffset", default=None,
+                    type=lambda x: int(x, 0),
                     help="Shift input binary by an offset")
 parser.add_argument('-a', "--try-disasm-all", action="store_true",
                     help="Try to disassemble the whole binary")
@@ -85,7 +86,7 @@ mdis.dont_dis_nulstart_bloc = not args.dis_nulstart_block
 mdis.follow_call = args.followcall
 
 todo = []
-addrs = [int(a, 16) for a in args.address]
+addrs = [int(a, 0) for a in args.address]
 
 if len(addrs) == 0 and default_addr is not None:
     addrs.append(default_addr)
diff --git a/example/jitter/mips32.py b/example/jitter/mips32.py
index e41096cc..20d451ab 100644
--- a/example/jitter/mips32.py
+++ b/example/jitter/mips32.py
@@ -38,7 +38,7 @@ def code_sentinelle(jitter):
     return True
 
 def jit_mips32_binary(args):
-    filepath, entryp = args.binary, int(args.addr, 16)
+    filepath, entryp = args.binary, int(args.addr, 0)
     myjit = machine.jitter(jit_type = args.jitter)
     myjit.init_stack()
 
diff --git a/example/jitter/msp430.py b/example/jitter/msp430.py
index d752ef8c..eb327e05 100644
--- a/example/jitter/msp430.py
+++ b/example/jitter/msp430.py
@@ -31,7 +31,7 @@ parser.add_argument("addr",
 machine = Machine("msp430")
 
 def jit_msp430_binary(args):
-    filepath, entryp = args.binary, int(args.addr, 16)
+    filepath, entryp = args.binary, int(args.addr, 0)
     myjit = machine.jitter(jit_type = args.jitter)
     myjit.init_stack()
 
diff --git a/example/symbol_exec/depgraph.py b/example/symbol_exec/depgraph.py
index 5b6f373a..6aa9cf81 100644
--- a/example/symbol_exec/depgraph.py
+++ b/example/symbol_exec/depgraph.py
@@ -55,7 +55,7 @@ if args.rename_args:
             init_ctx[e_mem] = ExprId("arg%d" % i)
 
 # Disassemble the targeted function
-blocks = mdis.dis_multibloc(int(args.func_addr, 16))
+blocks = mdis.dis_multibloc(int(args.func_addr, 0))
 
 # Generate IR
 for block in blocks:
@@ -71,7 +71,7 @@ dg = DependencyGraph(ir_arch, implicit=args.implicit,
 		     follow_call=not(args.unfollow_call))
 
 # Build information
-target_addr = int(args.target_addr, 16)
+target_addr = int(args.target_addr, 0)
 current_block = list(ir_arch.getby_offset(target_addr))[0]
 line_nb = 0
 for line_nb, line in enumerate(current_block.lines):