about summary refs log tree commit diff stats
path: root/example/jit_arm_sc.py
diff options
context:
space:
mode:
authorCamille Mougey <camille.mougey@cea.fr>2015-01-07 17:17:42 +0100
committerCamille Mougey <camille.mougey@cea.fr>2015-01-23 17:24:41 +0100
commitc0a74599627ed01c6e799d41905d449ba44b098b (patch)
treefbde712ee7914ffce87416efbba9e5b1d16008d8 /example/jit_arm_sc.py
parent4a3880c62638ca5e3f1ea74bd2f29b186fb109a6 (diff)
downloadmiasm-c0a74599627ed01c6e799d41905d449ba44b098b.tar.gz
miasm-c0a74599627ed01c6e799d41905d449ba44b098b.zip
Example: Rename test_jit_* to jit_*
Diffstat (limited to 'example/jit_arm_sc.py')
-rw-r--r--example/jit_arm_sc.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/example/jit_arm_sc.py b/example/jit_arm_sc.py
new file mode 100644
index 00000000..0ec2a5ee
--- /dev/null
+++ b/example/jit_arm_sc.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+from miasm2.analysis import debugging, gdbserver
+
+from miasm2.analysis.sandbox import Sandbox_Linux_armb_str
+from miasm2.analysis.sandbox import Sandbox_Linux_arml_str
+from miasm2.analysis.machine import Machine
+from elfesteem.strpatchwork import StrPatchwork
+import logging
+
+from pdb import pm
+
+parser = Sandbox_Linux_arml_str.parser(description="""Sandbox an elf binary with arm engine
+(ex: test_jit_arm_sc.py example/demo_arm_l.bin)""")
+parser.add_argument("filename", help="string Filename")
+parser.add_argument("endianess", help="endianness [b/l]")
+parser.add_argument('-v', "--verbose",
+                    help="verbose mode", action="store_true")
+
+options = parser.parse_args()
+
+if options.endianess == 'b':
+    sandbox = Sandbox_Linux_armb_str
+elif options.endianess == 'l':
+    sandbox = Sandbox_Linux_arml_str
+else:
+    raise ValueError("Bad endianess!")
+
+sb = sandbox(options.filename, options, globals())
+
+if options.address is None:
+    raise ValueError('invalid address')
+
+sb.run()
+
+# test correct de xor
+start = sb.jitter.cpu.R0
+stop = sb.jitter.cpu.R1
+s = sb.jitter.vm.get_mem(start, stop-start)
+s = StrPatchwork(s)
+for i, c in enumerate(s):
+    s[i] = chr(ord(c)^0x11)
+s = str(s)
+assert(s == "test string\x00")
+
+