Skip to content

Inject python code into a running python process

License

Notifications You must be signed in to change notification settings

Greenroom-Robotics/hypno

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hypno

PyPI version PyPI Supported Python Versions GitHub license Tests (GitHub Actions) chat

A cross-platform tool/library allowing to inject python code into a running python process. Based on kmaork/pyinjector.

If you are trying to debug a python process, check out kmaork/madbg.

Installation

pip install hypno

Both source distributions, manylinux, musslinux, mac and windows wheels are uploaded to pypi for every release.

Usage

CLI

hypno <pid> <python_code>

API

from hypno import inject_py

inject_py(pid, python_code)

Example

This example runs a python program that prints its pid, and then attaches to the newly created process and injects it with another print statement using hypno. Mac users will need to use sudo for the second command.

python -c "import os, time; print('Hello from', os.getpid()); time.sleep(0.5)" &\
hypno $! "import os; print('Hello again from', os.getpid())"

Security

Hypno briefly generates a temporary file containing the requested python code. This file is given 644 permissions by default, which means all users can read it. To use custom permissions, you can pass the permissions argument to inject_py().

About

Inject python code into a running python process

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 85.5%
  • C 14.5%