Skip to main content

⚡ 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.
  • 🛠️ Deeply Customizable: Control the PIN parameter name, success status codes, response filtering, and custom User-Agents.
  • 🛡️ Smart Termination: Automatically halts all active tasks as soon as the correct PIN is identified to save resources and bandwidth.

📦 Installation

pip install pinpulse

2. From Source

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

🚀 Usage

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
--parameter -p Name of the PIN query parameter pin_code
--status -s Expected HTTP status code for success 200
--text -t Error text to look for in response "Incorrect pin code"
--user-agent -a Custom User-Agent string (Firefox 150)

Examples

Standard 6-digit test with custom parameter:

pinpulse -u "https://api.example.com/v1/verify" -d 6 -p "otp"

Bypassing simple WAFs with a custom User-Agent:

pinpulse -u "https://target.com/login" -a "MyCustomScanner/1.0" -c 100

Defining success by status code and excluding specific error text:

pinpulse -u "https://api.site.com/auth" -s 302 -t "Try Again"

🛠️ How It Works

PinPulse utilizes an asynchronous Semaphore to manage request flow, ensuring maximum throughput without overwhelming the local system's file descriptors.

For every request, it checks two conditions for a "Success":

  1. HTTP Status Code: Does the response status match the --status flag?
  2. Body Content: Is the string provided in --text absent from the response body?

If both conditions are met, the PIN is flagged as correct and the process terminates immediately.

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

Metadata

Release files for pinpulse 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pinpulse 1.0.2
File Size Uploaded Provenance
pinpulse-1.0.2.tar.gz 6.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pinpulse 1.0.2
File Interpreter ABI Platform
pinpulse-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 12.4 kB

Release files / pinpulse-1.0.2.tar.gz

Download URL pinpulse-1.0.2.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f2581800228fa7b4ef8a0226da1e6201208417d370173f8bb3940f01563dd664
BLAKE2b-256 checksum
How to use checksums
9fbc94ae4fa11f1adf35a7d236d55fd0148c069f7046b510cf13705fd84739b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Release files / pinpulse-1.0.2-py3-none-any.whl

Download URL pinpulse-1.0.2-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c07037ba644569182193d7cce309ca38f0d2a03fec88d7eb173fa23f57e44b7
BLAKE2b-256 checksum
How to use checksums
5a142d76f4b5c312a9bc4f523dfe7ac2624c7dcdd59c9783e729f81edd708ff5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Security for pinpulse 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pinpulse-1.0.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page