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