PyQBDI 0.9.0__cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl → 0.11.0__cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of PyQBDI might be problematic. Click here for more details.

@@ -210,7 +210,7 @@ QBDI source code is under the Apache License v2.0
210
210
  same "printed page" as the copyright notice for easier
211
211
  identification within third-party archives.
212
212
 
213
- Copyright 2017 - 2022 Quarkslab
213
+ Copyright 2017 - 2024 Quarkslab
214
214
 
215
215
  Licensed under the Apache License, Version 2.0 (the "License");
216
216
  you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyQBDI
3
- Version: 0.9.0
3
+ Version: 0.11.0
4
4
  Summary: Python binding for QBDI
5
5
  Author: Nicolas Surbayrole
6
6
  Author-email: qbdi@quarkslab.com
@@ -8,7 +8,6 @@ License: apache2
8
8
  Project-URL: Documentation, https://qbdi.readthedocs.io/
9
9
  Project-URL: Source, https://github.com/QBDI/QBDI
10
10
  Project-URL: Homepage, https://qbdi.quarkslab.com/
11
- Platform: UNKNOWN
12
11
  Classifier: Development Status :: 5 - Production/Stable
13
12
  Classifier: License :: OSI Approved :: Apache Software License
14
13
  Classifier: Operating System :: Microsoft :: Windows
@@ -18,6 +17,8 @@ Classifier: Programming Language :: C++
18
17
  Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
21
22
  Classifier: Topic :: Security
22
23
  Classifier: Topic :: Software Development :: Debuggers
23
24
  Requires-Python: >=3.8
@@ -31,9 +32,6 @@ Introduction
31
32
  :target: https://qbdi.readthedocs.io/en/stable/?badge=stable
32
33
  :alt: Documentation Status
33
34
 
34
- .. image:: https://ci.appveyor.com/api/projects/status/s2qvpu8k8yiau647/branch/master?svg=true
35
- :target: https://ci.appveyor.com/project/QBDI/qbdi/branch/master
36
-
37
35
  .. image:: https://img.shields.io/github/v/release/QBDI/QBDI
38
36
  :target: https://github.com/QBDI/QBDI/releases
39
37
 
@@ -73,11 +71,11 @@ CPU Operating Systems Execution Memory Acc
73
71
  ======= ============================== ======================== =================================
74
72
  x86-64 Android, Linux, macOS, Windows :green:`Supported` :green:`Supported`
75
73
  x86 Android, Linux, macOS, Windows :green:`Supported` :green:`Supported`
76
- ARM Linux, Android, iOS :orange:`Planned (*)` :orange:`Planned (*)`
77
- AArch64 Android, Linux, macOS :orange:`Supported (*)` :orange:`Supported (*)`
74
+ ARM Android, Linux :yellow:`Supported (*)` :yellow:`Supported (*)`
75
+ AArch64 Android, Linux, macOS :yellow:`Supported (*)` :yellow:`Supported (*)`
78
76
  ======= ============================== ======================== =================================
79
77
 
80
- \* The ARM and AArch64 instruction sets are supported for internal use at the moment.
78
+ \* The ARM and AArch64 instruction sets are supported but in early support.
81
79
 
82
80
  Installation
83
81
  ============
@@ -85,7 +83,7 @@ Installation
85
83
  Python API (PyQBDI)
86
84
  +++++++++++++++++++
87
85
 
88
- PyQBDI is available through PyPI. The wheel package can be either `downloaded <https://pypi.org/project/PyQBDI/#files>`_ or installed with the following command:
86
+ PyQBDI is available through PyPI. The wheel package can be either `downloaded <https://pypi.org/project/PyQBDI/#files>`__ or installed with the following command:
89
87
 
90
88
  pip install PyQBDI
91
89
 
@@ -98,8 +96,20 @@ There is no strict development timeline or scheduled release plan for the QBDI p
98
96
  All the new features and fixes are merged onto the ``dev-next`` branch.
99
97
  Devel packages can be downloaded in the artefacts of:
100
98
 
101
- - `Appveyor <https://ci.appveyor.com/project/QBDI/qbdi/branch/dev-next>`_ for Windows packages PyQBDI
102
- - `Github Actions PyQBDI Linux <https://github.com/QBDI/QBDI/actions?query=workflow%3A%22PyQBDI+Linux+package%22+branch%3Adev-next>`_ for Linux PyQBDI
103
- - `Github Actions PyQBDI OSX <https://github.com/QBDI/QBDI/actions?query=workflow%3A%22PyQBDI+OSX+package%22+branch%3Adev-next>`_ for OSX PyQBDI
99
+ - `Github Actions <https://github.com/QBDI/QBDI/actions/workflows/python_linux.yml?query=branch%3Adev-next>`__ for Linux PyQBDI
100
+ - `Github Actions <https://github.com/QBDI/QBDI/actions/workflows/python_osx.yml?query=branch%3Adev-next>`__ for OSX PyQBDI
101
+ - `Github Actions <https://github.com/QBDI/QBDI/actions/workflows/python_windows.yml?query=branch%3Adev-next>`__ for windows PyQBDI
102
+
103
+ Compilation
104
+ ===========
105
+
106
+ The PyQDBI library (apart from the wheel package) can be built by solely passing the **'-DQBDI_TOOLS_PYQBDI=ON'** option to the CMake build system.
107
+
108
+ However, if you want to build the wheel package, you can run these commands::
104
109
 
110
+ git clone https://github.com/QBDI/QBDI.git
111
+ python -m pip install --upgrade pip
112
+ python -m pip install setuptools wheel build
113
+ python -m build -w
105
114
 
115
+ A 32-bit version of Python is mandatory for the X86 architecture whereas a 64-bit one is required for the X86-64 architecture.
@@ -0,0 +1,8 @@
1
+ pyqbdipreloadlib.cpython-38-i386-linux-gnu.so,sha256=k4FREZUODHcQPZ7W3V0xSxhKE_q-v1lbdySH2iwH-Lc,9294076
2
+ pyqbdipreload.py,sha256=FkavEnds5DCFPnNLoHJ0LJtXVTjSRaWyYJRkcsjPFLc,3505
3
+ pyqbdi.cpython-38-i386-linux-gnu.so,sha256=3pb1isEcyUYcQsk2knifrWLXKuvg0yRl6MgQv5UuWwU,9265340
4
+ PyQBDI-0.11.0.dist-info/WHEEL,sha256=Wk1k0AK4EC5m6NvsCYdxoQpCcEMiN-4zP759f5x-81A,144
5
+ PyQBDI-0.11.0.dist-info/LICENSE.txt,sha256=J-slihDKKorAhYuNFzflMLU8JARSPYV9wfMZIHWr0qE,12462
6
+ PyQBDI-0.11.0.dist-info/top_level.txt,sha256=vaVfPcyi2OkulsN7QdaZiIKzq2GbFV2q24OujHZlbRc,7
7
+ PyQBDI-0.11.0.dist-info/RECORD,,
8
+ PyQBDI-0.11.0.dist-info/METADATA,sha256=fPm09oSNOR_cjMiaHya5YeXOOp4O0L1k7UfPLRKjG-0,5210
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.37.1)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp38-cp38-manylinux_2_17_i686
5
5
  Tag: cp38-cp38-manylinux2014_i686
Binary file
pyqbdipreload.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # This file is part of pyQBDI (python binding for QBDI).
4
4
  #
5
- # Copyright 2017 - 2022 Quarkslab
5
+ # Copyright 2017 - 2024 Quarkslab
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
8
8
  # you may not use this file except in compliance with the License.
@@ -39,9 +39,20 @@ def run():
39
39
  args = [args.target] + args.args
40
40
  environ = os.environ.copy()
41
41
 
42
+ preloadlib = os.path.join(
43
+ os.path.dirname(pyqbdi.__file__),
44
+ os.path.basename(pyqbdi.__file__).replace("pyqbdi", "pyqbdipreloadlib"))
45
+
46
+ if not os.path.isfile(preloadlib):
47
+ print("Cannot found pyqbdi preload library : {}".format(preloadlib))
48
+ exit(1)
49
+
42
50
  # add LD_PRELOAD or DYLD_INSERT_LIBRARIES
43
51
  if platform.system() == 'Darwin':
44
- environ["DYLD_INSERT_LIBRARIES"] = pyqbdi.__file__
52
+
53
+ environ["DYLD_INSERT_LIBRARIES"] = preloadlib
54
+ environ["DYLD_LIBRARY_PATH"] = os.path.join(sys.base_prefix, 'lib')
55
+ environ["DYLD_BIND_AT_LAUNCH"] = "1"
45
56
  elif platform.system() == 'Linux':
46
57
  libpythonname = "python{}.{}".format(sys.version_info.major, sys.version_info.minor)
47
58
  libpython = ctypesutil.find_library(libpythonname)
@@ -52,7 +63,7 @@ def run():
52
63
  print("PyQBDI in PRELOAD mode need lib{}.so".format(libpythonname))
53
64
  exit(1)
54
65
 
55
- environ["LD_PRELOAD"] = os.pathsep.join([libpython, pyqbdi.__file__])
66
+ environ["LD_PRELOAD"] = os.pathsep.join([libpython, preloadlib])
56
67
  environ["LD_BIND_NOW"] = "1"
57
68
  else:
58
69
  print("PyQBDI in PRELOAD mode is not supported on this platform")
@@ -1,7 +0,0 @@
1
- pyqbdipreload.py,sha256=iiVSNVrMsamcrh4qeyqdOcQvq8Z_0pH6XQ-ClNwuk0o,3097
2
- pyqbdi.so,sha256=ME1r9Yy4lxy0mp8oAxqvbxuFj-_F3cyIEDJifKn4trc,7945572
3
- PyQBDI-0.9.0.dist-info/LICENSE.txt,sha256=RxnKsM7R7MaVz9UWUER49NvjREyGe5VORuEMkehjhhM,12462
4
- PyQBDI-0.9.0.dist-info/METADATA,sha256=t5CNKncAHD5bnjD0KuInfA1ch6LDDZiYKM3PWUDQuh0,4772
5
- PyQBDI-0.9.0.dist-info/top_level.txt,sha256=vaVfPcyi2OkulsN7QdaZiIKzq2GbFV2q24OujHZlbRc,7
6
- PyQBDI-0.9.0.dist-info/RECORD,,
7
- PyQBDI-0.9.0.dist-info/WHEEL,sha256=GwReX849BnoQWv-HcSXUs0whc-31BkC6U2K6sSoRQvA,144