Skip to content

DaniEnsi/Pingo-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PINGO Bot

Description

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.

image

Features

  • 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

Requirements

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

Setup

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
  • Install the required dependencies using pip install -r requirements.txt
  • Run the bot using python -m pingo_bot
  • Follow the prompts to begin

Usage

  1. Enter Access Code: The numeric code provided by your instructor
  2. Reconnaissance: The bot scans the survey page and displays found options
  3. Set Viewer Count: How many simulated "viewers" to spawn
  4. Set Vote Count: How many votes to cast (max: viewer count)
  5. Select Answer: Choose which option should receive the votes
  6. Select Mode: Sequential (slower, stealthier) or Parallel (faster)
  7. Confirm & Execute: Review summary and start the operation

Project Structure

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

How It Works

Phase 1: Reconnaissance

  • Fetches the survey page
  • Extracts CSRF token, survey ID, and answer options
  • Identifies Faye/WebSocket endpoint

Phase 2: Crowd Spawning

  • Performs Faye handshake to get client IDs
  • Subscribes to the session channel
  • Abandons connections (zombies stay "active" for ~5 minutes)

Phase 3: Vote Casting

  • Creates fresh session for each vote (clean cookies)
  • Fetches fresh CSRF token
  • Submits vote via POST request
  • Destroys session after voting

Contributions

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.

Disclaimer

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.

About

A crowd simulation tool for PINGO Surveys

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages