1#!/usr/bin/env python 2# Capstone Python bindings, by Nguyen Anh Quynnh <[email protected]> 3 4from __future__ import print_function 5import sys 6_python3 = sys.version_info.major == 3 7 8 9def to_hex(s, prefix_0x = True): 10 if _python3: 11 if prefix_0x: 12 return " ".join("0x{0:02x}".format(c) for c in s) # <-- Python 3 is OK 13 else: 14 return " ".join("{0:02x}".format(c) for c in s) # <-- Python 3 is OK 15 else: 16 if prefix_0x: 17 return " ".join("0x{0:02x}".format(ord(c)) for c in s) 18 else: 19 return " ".join("{0:02x}".format(ord(c)) for c in s) 20 21def to_hex2(s): 22 if _python3: 23 r = "".join("{0:02x}".format(c) for c in s) # <-- Python 3 is OK 24 else: 25 r = "".join("{0:02x}".format(ord(c)) for c in s) 26 while r[0] == '0': r = r[1:] 27 return r 28 29def to_x(s): 30 from struct import pack 31 if not s: return '0' 32 x = pack(">q", s) 33 while x[0] in ('\0', 0): x = x[1:] 34 return to_hex2(x) 35 36def to_x_32(s): 37 from struct import pack 38 if not s: return '0' 39 x = pack(">i", s) 40 while x[0] in ('\0', 0): x = x[1:] 41 return to_hex2(x) 42