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