SkillAgentSearch skills...

Pangolin

Inject ELF into remote process

Install / Use

/learn @Hackerl/Pangolin
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<!-- PROJECT SHIELDS --> <!-- *** I'm using markdown "reference style" links for readability. *** Reference links are enclosed in brackets [ ] instead of parentheses ( ). *** See the bottom of this document for the declaration of the reference variables *** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. *** https://www.markdownguide.org/basic-syntax/#reference-style-links -->

Contributors Forks Stargazers Issues

<!-- PROJECT LOGO --> <br /> <p align="center"> <h3 align="center">Pangolin</h3> <p align="center"> Inject ELF into remote process. <br /> <br /> <a href="https://github.com/Hackerl/pangolin/issues">Report Bug</a> · <a href="https://github.com/Hackerl/pangolin/issues">Request Feature</a> </p> </p> <!-- TABLE OF CONTENTS --> <details open="open"> <summary>Table of Contents</summary> <ol> <li> <a href="#about-the-project">About The Project</a> <ul> <li><a href="#built-with">Built With</a></li> </ul> </li> <li> <a href="#getting-started">Getting Started</a> <ul> <li><a href="#prerequisites">Prerequisites</a></li> <li><a href="#installation">Installation</a></li> </ul> </li> <li><a href="#usage">Usage</a></li> <li><a href="#roadmap">Roadmap</a></li> <li><a href="#contributing">Contributing</a></li> <li><a href="#license">License</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#acknowledgements">Acknowledgements</a></li> </ol> </details> <!-- ABOUT THE PROJECT -->

About The Project

Pangolin is a program that allows to inject an ELF file into a remote process, both static & dynamically linked programs can be targeted.

Built With

<!-- GETTING STARTED -->

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/Hackerl/pangolin.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 EXAMPLES -->

Usage

usage: pangolin [options] pid(int) ... inject argv ...
positional:
        pid                 process id(int)
optional:
        -?, --help          print help message
        -d, --daemon        daemon mode
        -e, --environs      environment variables(string[])

Start target:

./target

Inject target:

./pangolin -e "PANGOLIN=1" $(pidof target) $(pwd)/inject 1 "2 3"

If you want to make some threads reside in remote process, please specify daemon mode, pangolin will allocate a persistent memory as stack. In addition, after daemon thread created, call exit syscall in main thread to end injection.

<!-- ROADMAP -->

Roadmap

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

<!-- CONTRIBUTING -->

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 -->

License

Distributed under the beerware License.

<!-- CONTACT -->

Contact

Hackerl - @Hackerl

Project Link: https://github.com/Hackerl/pangolin

<!-- ACKNOWLEDGEMENTS -->

Acknowledgements

<!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
View on GitHub
GitHub Stars152
CategoryDevelopment
Updated4d ago
Forks28

Languages

C++

Security Score

85/100

Audited on Mar 28, 2026

No findings