Skip to main content

High-performance, asynchronous PIN brute-force tool with a real-time progress bar

Project description

⚡ PinPulse

PyPI version

PinPulse is a high-performance, asynchronous PIN brute-force tool built with Python. Utilizing asyncio and aiohttp, it is designed to test the resilience of PIN-based authentication mechanisms through rapid, concurrent HTTP requests.

✨ Features

  • 🚀 Asynchronous Architecture: Built on aiohttp for non-blocking network I/O, allowing hundreds of requests per second.
  • 📊 Real-time Progress: Integrated with tqdm to provide a live progress bar, estimated time remaining, and request speed.
  • 🛠️ Fully Parameterized: Easily adjust the target URL, concurrency limits, and PIN digit length directly from the terminal.
  • 🛡️ Smart Termination: Automatically halts all active tasks as soon as the correct PIN is identified to save resources.

📦 Installation

1. Via PyPI (Recommended)

The easiest way to install PinPulse is directly via pip. This will add the pinpulse command to your system PATH.

pip install pinpulse

2. From Source (Manual)

If you want to run the latest development version or modify the code:

git clone https://github.com/fr0stb1rd/PinPulse.git
cd PinPulse
pip install -r requirements.txt

(Note: Requires Python 3.8+)

🚀 Usage

If installed via PyPI, you can run it directly:

pinpulse -u "http://target-site.com/verify"

If running from Source:

python -m pinpulse -u "http://target-site.com/verify"

Arguments

Argument Short Description Default
--url -u The target endpoint URL (Required)
--concurrent -c Number of simultaneous requests 50
--digits -d Number of PIN digits to test 4

Examples

Testing for a 6-digit PIN:

pinpulse -u "https://api.example.com/v1/auth" -d 6

Aggressive testing with 100 concurrent workers:

pinpulse -u "https://api.example.com/v1/auth" -c 100

🛠️ How It Works

PinPulse uses an asynchronous Semaphore to manage request flow. This ensures that the tool respects your system's limits while maintaining maximum throughput. The script evaluates the HTTP response body for specific failure strings (e.g., "Incorrect pin code") to determine success or failure.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Disclaimer

This tool is developed for educational purposes and authorized security testing (Pentesting) only. Running this against systems without explicit permission is illegal. The developer assumes no liability and is not responsible for any misuse or damage caused by this program.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pinpulse-1.0.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pinpulse-1.0.1-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file pinpulse-1.0.1.tar.gz.

File metadata

  • Download URL: pinpulse-1.0.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pinpulse-1.0.1.tar.gz
Algorithm Hash digest
SHA256 124eddb7a804ded88d2dbaff7e6942bcd8a904d41e0c80e2e4d09f3909dd7256
MD5 eee83bff96f95092805c2bc7e6b1db1b
BLAKE2b-256 a702ce555b0e6ae977508e2272811b7ce4989745455ef5840315d2fc2b56ac53

See more details on using hashes here.

Provenance

The following attestation bundles were made for pinpulse-1.0.1.tar.gz:

Publisher: publish.yml on fr0stb1rd/pinpulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pinpulse-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pinpulse-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pinpulse-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 66c746d2b54812e7cf5cae9763b7e98fa87d04cc6edad505e290e2014ce18a78
MD5 0413ae637a3cf7379c8c3137ca001bac
BLAKE2b-256 af5ce7ee5a7d059507b5b909460931ef4800109b160353b065b6296ddb68b394

See more details on using hashes here.

Provenance

The following attestation bundles were made for pinpulse-1.0.1-py3-none-any.whl:

Publisher: publish.yml on fr0stb1rd/pinpulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page