• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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