whalibmob 5.33.1 â 5.33.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,25 +29,23 @@ code, and bring the account into being. Both transports, one API.
|
|
|
29
29
|
|
|
30
30
|
[](#device-attestation--play-integrity-and-app-attest)
|
|
31
31
|
|
|
32
|
+
[](#why-registration-can-be-blocked--the-anti-abuse-landscape)
|
|
33
|
+
|
|
32
34
|
</div>
|
|
33
35
|
|
|
34
36
|
##
|
|
35
37
|
|
|
36
|
-
>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
If you want News about whalibmob enter this whalibmob channel: https://t.me/+sHN4MDCyB7U5OWY0
|
|
38
|
+
<div align="center">
|
|
45
39
|
|
|
40
|
+
### ðŽ Need help? Talk to me on Telegram
|
|
46
41
|
|
|
47
|
-
|
|
42
|
+
[](https://t.me/+sHN4MDCyB7U5OWY0)
|
|
48
43
|
|
|
44
|
+
[](https://t.me/brtyu545)
|
|
49
45
|
|
|
46
|
+
**I'm waiting for you â message me on Telegram at [@brtyu545](https://t.me/brtyu545) if you want help with whalibmob, or if you need anything related to features such as WhatsApp or Instagram. I'm at your disposal.**
|
|
50
47
|
|
|
48
|
+
</div>
|
|
51
49
|
|
|
52
50
|
> [!CAUTION]
|
|
53
51
|
> Use a dedicated phone number with this library. Connecting with a number that is already active on a real device will cause WhatsApp to log that device out.
|
|
@@ -2775,6 +2773,50 @@ If that is refused too, the number has to go through the real app once, on a pho
|
|
|
2775
2773
|
> [!NOTE]
|
|
2776
2774
|
> The `login` field in that reply is worth reading. Brazilian mobiles gained a ninth digit that WhatsApp never adopted, so `+5571976034186` is filed as `+557176034186`. whalibmob adopts the server's form automatically on a successful registration and saves the session under it â the digit difference is not itself the failure.
|
|
2777
2775
|
|
|
2776
|
+
## Why Registration Can Be Blocked â The Anti-Abuse Landscape
|
|
2777
|
+
|
|
2778
|
+
If registration works on some numbers and fails on others with the same code, the failure is almost never a bug in whalibmob. It is one of two **separate** defences WhatsApp runs, built at different times, for different reasons. Telling them apart is the whole of debugging a block, so this section explains what each one is, where it came from, and what actually moves the needle.
|
|
2779
|
+
|
|
2780
|
+
### Two different walls
|
|
2781
|
+
|
|
2782
|
+
**Wall 1 â "are you the real app?" (unofficial-client detection).**
|
|
2783
|
+
This is the wall built against **modified WhatsApp clients** â GB WhatsApp, FM WhatsApp, YoWhatsApp, WhatsApp Plus and the rest of that family, mods that repackage the official APK to add themes, dual accounts and privacy toggles. WhatsApp fought them for years and, from around 2024, banned tens of millions of the accounts using them in a single wave. The detection that came out of that fight checks three things on every connection: the **APK signature** (is it signed by WhatsApp Inc. or by a mod author?), the **integrity attestation** (does Play Integrity / App Attest vouch that this is the genuine app on a real device?), and **behaviour**.
|
|
2784
|
+
|
|
2785
|
+
whalibmob is not a mod â but from the server's point of view a whalibmob request with **empty attestation** produces the same answer to those questions as a mod does: *"I can't prove I'm the official app."* WhatsApp does not read your project's name; it reads signals, and on that signal whalibmob and a mod look alike. That is why the same screens a mod triggers can appear here:
|
|
2786
|
+
|
|
2787
|
+
- **`"reason":"blocked"` with a `custom_block_screen`** â *"For security reasons, we can't connect you right now."* The request is refused before the code is even routed.
|
|
2788
|
+
- **"We could not confirm you are using the official WhatsApp app,"** often with a link to download it.
|
|
2789
|
+
- On a **linked/companion** session, **"Use the official WhatsApp Web to continue"** â the same idea, one layer over, aimed at web-class linked devices.
|
|
2790
|
+
|
|
2791
|
+
These tend to appear on numbers that have been **flagged before** (previously banned, or previously seen on an unofficial client). A clean number is usually given the benefit of the doubt and passes with empty attestation; a flagged number has spent that benefit and is asked to *prove* it is the official app â which empty attestation cannot.
|
|
2792
|
+
|
|
2793
|
+
**Wall 2 â "are you spamming?" (anti-abuse / IP reputation).**
|
|
2794
|
+
This wall is **older than the mods** and unrelated to them. WhatsApp scores the **IP address** the request comes from, and if it belongs to a datacenter, a known VPN range or an address already on a spam list, it is refused regardless of how genuine the client looks. This is what fails **many numbers at once from the same server**: the common factor is not the numbers, it is the IP. It is also what a `no_routes` reply (with every `*_wait` at `3600`) usually means â a routing/rate refusal; cool down for an hour and slow down.
|
|
2795
|
+
|
|
2796
|
+
The distinction matters because the fixes are different, and because **Wall 2 would exist even if the mods never had**. Even in a world with no GB WhatsApp, WhatsApp would still stop mass account creation â that is a spam problem it has fought since before any mod existed. There is no configuration that turns a headless server into "unlimited numbers": that is precisely the outcome the anti-abuse system is designed to prevent.
|
|
2797
|
+
|
|
2798
|
+
### Reading the reply
|
|
2799
|
+
|
|
2800
|
+
| What the server sends back | Which wall | What it means |
|
|
2801
|
+
|---|---|---|
|
|
2802
|
+
| `"reason":"no_routes"`, every `*_wait: 3600` | Anti-abuse | Can't route the code now; usually the IP or rate. Wait out the cooldown, use a cleaner IP. |
|
|
2803
|
+
| `"reason":"blocked"` + `custom_block_screen` | Unofficial-client / reputation | Refused for "security"; the IP and/or the number are distrusted. |
|
|
2804
|
+
| "not using the official app" / download link | Unofficial-client | The number is flagged and is being asked to prove it is the genuine app. |
|
|
2805
|
+
| `"reason":"consent"`, `"pending":"app_store_age"` | Consent (separate) | See [When Registration Is Refused for Consent](#when-registration-is-refused-for-consent). |
|
|
2806
|
+
|
|
2807
|
+
### What actually helps â and what does not
|
|
2808
|
+
|
|
2809
|
+
Honest, in order of effect:
|
|
2810
|
+
|
|
2811
|
+
- **A clean IP does the most.** A residential or mobile IP, one that is not on a blocklist, clears Wall 2 more than anything else. Datacenter/VPS IPs are the single most common cause of a `blocked` reply across many numbers. Route through a good residential/mobile proxy (see [Routing Traffic Through a Proxy](#routing-traffic-through-a-proxy)), and do not push dozens of numbers through one address.
|
|
2812
|
+
- **Clean, unused numbers.** A number that has never been flagged passes with empty attestation. A number that already carries the "unofficial app" screen has been marked, and is usually not worth fighting â a fresh clean number is the better use of time.
|
|
2813
|
+
- **The Android profile** (`WA_OS=android`) carries more of the fields the server wants than the iOS one, and is the first thing to try when a number is refused.
|
|
2814
|
+
- **Real attestation** answers Wall 1 directly. The Frida scripts in [`frida/`](https://github.com/Kunboruto20/whalibmob/tree/main/frida) mint a genuine Play Integrity / App Attest token **from a real handset with the Play-Store app** and fold it in â this is the honest way to answer "prove you're the official app," because it *is* a real device proving it. It needs a rooted Android or jailbroken iOS phone (see [Device Attestation with Frida](#device-attestation-with-frida-optional)), so it is not always practical; clean numbers do not need it, and no software-only trick substitutes for it.
|
|
2815
|
+
|
|
2816
|
+
### The honest bottom line
|
|
2817
|
+
|
|
2818
|
+
This is a moving target, not a solved problem. WhatsApp changes these checks continually â the mods went from surviving *months* to surviving *hours* under the same pressure â and whalibmob is kept in step release by release, but nothing here is permanent and there is no magic bypass. Registration on the mobile protocol is a real capability that works, most reliably on **clean numbers from clean IPs**; the further you get from that, the harder the anti-abuse system pushes back, by design.
|
|
2819
|
+
|
|
2778
2820
|
## The Push Token
|
|
2779
2821
|
|
|
2780
2822
|
Every WhatsApp on a real phone holds a push token. It is the address the push network uses to wake the app, and no install exists without one â so a registration that ships no `push_token` describes a WhatsApp that cannot be notified, which is a device that does not exist.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "whalibmob",
|
|
3
|
-
"version": "5.33.
|
|
3
|
+
"version": "5.33.3",
|
|
4
4
|
"description": "Node.js library for WhatsApp â register a number over SMS, or link as a companion by QR. Signal E2E encryption, media, groups, channels.",
|
|
5
5
|
"author": "Kunboruto20",
|
|
6
6
|
"main": "index.js",
|