# Trainerbase Injector (forked Pyinjector)
Forked from [kmaork's Pyinjector](https://github.com/kmaork/pyinjector) in order to support Python 3.13.
[](https://pypi.python.org/pypi/trainerbase-injector/)
[](https://badge.fury.io/py/trainerbase-injector)
[](https://pepy.tech/project/trainerbase-injector)
A cross-platform tool/library allowing dynamic library injection into running processes.
If you are looking for a way to inject *python* code into a running process, try the [hypno](https://github.com/kmaork/hypno) library.
Trainerbase Injector has no external python dependencies.
It is implemented as a python wrapper for [kubo/injector](https://github.com/kubo/injector).
## Installation
```shell script
uv add trainerbase-injector
```
## Usage
### CLI
```shell script
uv run inject <pid> <path/to/shared/library>
```
### API
```python
from trainerbase_injector import inject
inject(pid, path_to_so_file)
```
## How it works
We build [kubo/injector](https://github.com/kubo/injector) as a C-extension and use its interface using `ctypes`.
[kubo/injector](https://github.com/kubo/injector) is an awesome repo allowing to inject shared libraries into running
processes both on Windows (`CreateRemoteThread`), Linux (`ptrace`), and Mac (`task_for_pid`).
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/python-trainers/trainerbase-injector",
"name": "trainerbase-injector",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "injection dll so library",
"author": "v01d",
"author_email": "v01d@v01d.ru",
"download_url": "https://files.pythonhosted.org/packages/cc/7d/c0a407c56a9711794bcae2d28a622b365d1cb8cf15a818060949b0d21b4d/trainerbase_injector-1.0.0.tar.gz",
"platform": null,
"description": "# Trainerbase Injector (forked Pyinjector)\r\n\r\nForked from [kmaork's Pyinjector](https://github.com/kmaork/pyinjector) in order to support Python 3.13.\r\n\r\n[](https://pypi.python.org/pypi/trainerbase-injector/)\r\n[](https://badge.fury.io/py/trainerbase-injector)\r\n[](https://pepy.tech/project/trainerbase-injector)\r\n\r\nA cross-platform tool/library allowing dynamic library injection into running processes.\r\nIf you are looking for a way to inject *python* code into a running process, try the [hypno](https://github.com/kmaork/hypno) library.\r\n\r\nTrainerbase Injector has no external python dependencies.\r\nIt is implemented as a python wrapper for [kubo/injector](https://github.com/kubo/injector).\r\n\r\n## Installation\r\n\r\n```shell script\r\nuv add trainerbase-injector\r\n```\r\n\r\n## Usage\r\n\r\n### CLI\r\n\r\n```shell script\r\nuv run inject <pid> <path/to/shared/library>\r\n```\r\n\r\n### API\r\n\r\n```python\r\nfrom trainerbase_injector import inject\r\n\r\ninject(pid, path_to_so_file)\r\n```\r\n\r\n## How it works\r\n\r\nWe build [kubo/injector](https://github.com/kubo/injector) as a C-extension and use its interface using `ctypes`.\r\n[kubo/injector](https://github.com/kubo/injector) is an awesome repo allowing to inject shared libraries into running\r\nprocesses both on Windows (`CreateRemoteThread`), Linux (`ptrace`), and Mac (`task_for_pid`).\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A tool/library allowing dynamic library injection into running processes (fork)",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://gitlab.com/python-trainers/trainerbase-injector"
},
"split_keywords": [
"injection",
"dll",
"so",
"library"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1a125c0f1b207de4a6086a5841d32414476c2fd0fed2bc573e827c9e447a971e",
"md5": "1d2f51d38deb41834b680d49846ac1ed",
"sha256": "8a550eaa96ec8b57be60ebe392db4ec13302484c0840e2d4e16804740a6b946d"
},
"downloads": -1,
"filename": "trainerbase_injector-1.0.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "1d2f51d38deb41834b680d49846ac1ed",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.13",
"size": 16878,
"upload_time": "2025-08-30T07:55:48",
"upload_time_iso_8601": "2025-08-30T07:55:48.127120Z",
"url": "https://files.pythonhosted.org/packages/1a/12/5c0f1b207de4a6086a5841d32414476c2fd0fed2bc573e827c9e447a971e/trainerbase_injector-1.0.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cc7dc0a407c56a9711794bcae2d28a622b365d1cb8cf15a818060949b0d21b4d",
"md5": "d59069415610d57944ec0faba942ca70",
"sha256": "35161064ef4b59fdf2aa789cb7846a522e414db78a3c1bf1c020bc3b168c8766"
},
"downloads": -1,
"filename": "trainerbase_injector-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d59069415610d57944ec0faba942ca70",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.13",
"size": 45763,
"upload_time": "2025-08-30T07:55:49",
"upload_time_iso_8601": "2025-08-30T07:55:49.486538Z",
"url": "https://files.pythonhosted.org/packages/cc/7d/c0a407c56a9711794bcae2d28a622b365d1cb8cf15a818060949b0d21b4d/trainerbase_injector-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-30 07:55:49",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "python-trainers",
"gitlab_project": "trainerbase-injector",
"lcname": "trainerbase-injector"
}