blob: e61f4de0884cb5ddce56ce836e64e09e6b5c39ff [file] [log] [blame]
Nguyen Anh Quynh10983292014-05-17 09:51:15 +08001#!/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
danghvu24120692014-09-27 17:59:42 -050015def 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
Nguyen Anh Quynh10983292014-05-17 09:51:15 +080022
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:]
danghvu24120692014-09-27 17:59:42 -050028 return to_hex2(x)
Nguyen Anh Quynh10983292014-05-17 09:51:15 +080029
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:]
danghvu24120692014-09-27 17:59:42 -050035 return to_hex2(x)