diff options
| author | Camille Mougey <camille.mougey@cea.fr> | 2015-01-18 18:24:13 +0100 |
|---|---|---|
| committer | Camille Mougey <camille.mougey@cea.fr> | 2015-01-23 17:24:43 +0100 |
| commit | 488cb99d4d61a0b3b176f7e3c53431872fc234ef (patch) | |
| tree | 8d443acb6c92669cdeaa50a40af3496917a9448f /example/jitter/arm_sc.py | |
| parent | 829f8b98a658532b40382640223c0c3ea12ab15c (diff) | |
| download | miasm-488cb99d4d61a0b3b176f7e3c53431872fc234ef.tar.gz miasm-488cb99d4d61a0b3b176f7e3c53431872fc234ef.zip | |
Example: Move jitter's examples to a `jitter` directory
Diffstat (limited to 'example/jitter/arm_sc.py')
| -rw-r--r-- | example/jitter/arm_sc.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/example/jitter/arm_sc.py b/example/jitter/arm_sc.py new file mode 100644 index 00000000..80714641 --- /dev/null +++ b/example/jitter/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: 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") + + |