Skip to content

Hackerl/python-inject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python-inject

Inject code into remote python process.

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

Resolve ELF symbol table, find PyGILState_Ensure, PyRun_SimpleString and PyGILState_Release function address, then call them in remote process by using ptrace.

Caveats

The above API are non-reentrant functions, may stop the process forever cause by deadlock.

Built With

Getting Started

Prerequisites

  • CMake
    curl https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0-linux-x86_64.sh | sh

Installation

  1. Clone the repo
    git clone https://github.com/bytedance/Elkeid.git
  2. Update submodule
    git submodule update --init --recursive
  3. Build shellcode
    make -C shellcode
  4. Build injector
    mkdir -p build && cd build && cmake .. && make

Usage

usage: python_inject [options] pid(int) script(string) ... extra ...
positional:
	pid                 process id(int)
	script              python script(string)
optional:
	-?, --help          print help message
	-f, --file          eval script from file

Inject script:

./python_inject $(pidof python) "print('hello world')"

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the Apache-2.0 License.

Contact

Bytedance - @bytedance

Project Link: https://github.com/bytedance/Elkeid

Acknowledgements

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published