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.
- {PyQBDI-0.9.0.dist-info → PyQBDI-0.11.0.dist-info}/LICENSE.txt +1 -1
- {PyQBDI-0.9.0.dist-info → PyQBDI-0.11.0.dist-info}/METADATA +22 -12
- PyQBDI-0.11.0.dist-info/RECORD +8 -0
- {PyQBDI-0.9.0.dist-info → PyQBDI-0.11.0.dist-info}/WHEEL +1 -1
- pyqbdi.cpython-38-i386-linux-gnu.so +0 -0
- pyqbdipreload.py +14 -3
- pyqbdi.so → pyqbdipreloadlib.cpython-38-i386-linux-gnu.so +0 -0
- PyQBDI-0.9.0.dist-info/RECORD +0 -7
- {PyQBDI-0.9.0.dist-info → PyQBDI-0.11.0.dist-info}/top_level.txt +0 -0
|
@@ -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 -
|
|
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.
|
|
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
|
|
77
|
-
AArch64 Android, Linux, macOS :
|
|
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
|
|
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>`
|
|
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
|
-
- `
|
|
102
|
-
- `Github Actions
|
|
103
|
-
- `Github Actions
|
|
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
|
|
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 -
|
|
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
|
-
|
|
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,
|
|
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")
|
|
Binary file
|
PyQBDI-0.9.0.dist-info/RECORD
DELETED
|
@@ -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
|
|
File without changes
|