A crowd simulation tool for PINGO surveys.
This bot can spawn fake viewers, manipulate vote counts, and cast multiple votes on PINGO surveys with an interactive CLI interface.
- Fully automated reconnaissance and vote casting process
- Simulates multiple "viewers" using Faye/WebSocket connections
- Casts multiple votes with fresh sessions to avoid detection
- Beautiful terminal interface with questionary and rich
- Choose between sequential (stealthy) or parallel (fast) execution
In order to use the PINGO Bot, you will need:
- Python 3.10+
- All the required libraries (see
requirements.txt) - A valid PINGO access code
To get started with the PINGO Bot, follow these steps:
- Clone the repository to your local machine using
git clone - Navigate to the directory where you cloned the repository
- Create a virtual environment (recommended):
python -m venv venv - Activate the virtual environment:
- macOS/Linux:
source venv/bin/activate - Windows:
venv\Scripts\activate
- macOS/Linux:
- Install the required dependencies using
pip install -r requirements.txt - Run the bot using
python -m pingo_bot - Follow the prompts to begin
- Enter Access Code: The numeric code provided by your instructor
- Reconnaissance: The bot scans the survey page and displays found options
- Set Viewer Count: How many simulated "viewers" to spawn
- Set Vote Count: How many votes to cast (max: viewer count)
- Select Answer: Choose which option should receive the votes
- Select Mode: Sequential (slower, stealthier) or Parallel (faster)
- Confirm & Execute: Review summary and start the operation
pingo_bot/
├── __init__.py # Package initialization
├── config.py # URLs, headers, and timing constants
├── recon.py # HTML parsing and token extraction
├── crowd.py # Faye handshake/subscribe logic
├── voting.py # Vote casting with fresh sessions
└── main.py # Interactive CLI entry point
- Fetches the survey page
- Extracts CSRF token, survey ID, and answer options
- Identifies Faye/WebSocket endpoint
- Performs Faye handshake to get client IDs
- Subscribes to the session channel
- Abandons connections (zombies stay "active" for ~5 minutes)
- Creates fresh session for each vote (clean cookies)
- Fetches fresh CSRF token
- Submits vote via POST request
- Destroys session after voting
We welcome contributions to the PINGO Bot. If you have an idea for a new feature or have found a bug, please open an issue in the repository.
This tool is provided for educational and research purposes only.
By using this software, you acknowledge that:
- You are solely responsible for how you use this tool
- The author(s) assume no liability for any misuse or damage caused by this software
- Using this tool to manipulate real surveys without authorization may violate your institution's policies and/or applicable laws
- This software is provided "as is" without warranty of any kind
Use responsibly and ethically. The author(s) do not condone or encourage any malicious or unauthorized use of this tool.