@fanboynz/network-scanner 2.0.58 → 2.0.60
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/CHANGELOG.md +970 -0
- package/README.md +31 -0
- package/lib/adblock.js +215 -179
- package/lib/cdp.js +17 -169
- package/lib/compare.js +19 -32
- package/lib/domain-cache.js +9 -7
- package/lib/fingerprint.js +9 -1
- package/lib/ghost-cursor.js +258 -0
- package/lib/grep.js +9 -13
- package/lib/nettools.js +177 -42
- package/lib/output.js +17 -30
- package/nwss.js +214 -73
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -59,8 +59,11 @@ A Puppeteer-based tool for scanning websites to find third-party (or optionally
|
|
|
59
59
|
| `--compress-logs` | Compress log files with gzip (requires `--dumpurls`) |
|
|
60
60
|
| `--sub-domains` | Output full subdomains instead of collapsing to root |
|
|
61
61
|
| `--no-interact` | Disable page interactions globally |
|
|
62
|
+
| `--ghost-cursor` | Use ghost-cursor Bezier mouse movements globally (requires `npm i ghost-cursor`) |
|
|
62
63
|
| `--custom-json <file>` | Use a custom config JSON file instead of config.json |
|
|
63
64
|
| `--headful` | Launch browser with GUI (not headless) |
|
|
65
|
+
| `--keep-open` | Keep browser and tabs open after scan completes (use with `--headful` for debugging) |
|
|
66
|
+
| `--use-puppeteer-core` | Use `puppeteer-core` with system Chrome instead of bundled Chromium |
|
|
64
67
|
| `--cdp` | Enable Chrome DevTools Protocol logging (now per-page if enabled) |
|
|
65
68
|
| `--remove-dupes` | Remove duplicate domains from output (only with `-o`) |
|
|
66
69
|
| `--dry-run` | Console output only: show matching regex, titles, whois/dig/searchstring results, and adblock rules |
|
|
@@ -267,6 +270,11 @@ When a page redirects to a new domain, first-party/third-party detection is base
|
|
|
267
270
|
| `interact_clicks` | Boolean | `false` | Enable element clicking simulation |
|
|
268
271
|
| `interact_typing` | Boolean | `false` | Enable typing simulation |
|
|
269
272
|
| `interact_intensity` | String | `"medium"` | Interaction simulation intensity: "low", "medium", "high" |
|
|
273
|
+
| `cursor_mode` | `"ghost"` | - | Use ghost-cursor Bezier mouse movements (requires `npm i ghost-cursor`) |
|
|
274
|
+
| `ghost_cursor_speed` | Number | auto | Ghost-cursor movement speed multiplier |
|
|
275
|
+
| `ghost_cursor_hesitate` | Milliseconds | `50` | Delay before ghost-cursor clicks |
|
|
276
|
+
| `ghost_cursor_overshoot` | Pixels | auto | Max ghost-cursor overshoot distance before correcting |
|
|
277
|
+
| `ghost_cursor_duration` | Milliseconds | `interact_duration` or `2000` | How long ghost-cursor movements run |
|
|
270
278
|
| `dnsmasq` | Boolean | `false` | Force dnsmasq output for this site |
|
|
271
279
|
| `dnsmasq_old` | Boolean | `false` | Force dnsmasq old format output for this site |
|
|
272
280
|
| `unbound` | Boolean | `false` | Force unbound output for this site |
|
|
@@ -523,6 +531,27 @@ node nwss.js --max-concurrent 12 --cleanup-interval 300 -o rules.txt
|
|
|
523
531
|
}
|
|
524
532
|
```
|
|
525
533
|
|
|
534
|
+
#### Ghost Cursor (Advanced Bezier Mouse)
|
|
535
|
+
```json
|
|
536
|
+
{
|
|
537
|
+
"url": "https://anti-bot-site.com",
|
|
538
|
+
"interact": true,
|
|
539
|
+
"cursor_mode": "ghost",
|
|
540
|
+
"ghost_cursor_duration": 3000,
|
|
541
|
+
"ghost_cursor_speed": 1.2,
|
|
542
|
+
"fingerprint_protection": "random",
|
|
543
|
+
"filterRegex": "tracking|analytics",
|
|
544
|
+
"comments": "ghost-cursor uses Bezier curves with overshoot for realistic mouse paths"
|
|
545
|
+
}
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
Or enable globally via CLI:
|
|
549
|
+
```bash
|
|
550
|
+
node nwss.js --ghost-cursor --debug -o rules.txt
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
> **Note:** ghost-cursor is an optional dependency. Install with `npm install ghost-cursor`. If not installed, the scanner falls back to the built-in mouse simulation automatically.
|
|
554
|
+
|
|
526
555
|
#### E-commerce Site Scanning
|
|
527
556
|
```json
|
|
528
557
|
{
|
|
@@ -698,5 +727,7 @@ your_username ALL=(root) NOPASSWD: /usr/bin/wg-quick, /usr/bin/wg
|
|
|
698
727
|
- If an `.ovpn` file contains embedded credentials, no additional auth config is needed in the JSON
|
|
699
728
|
- VPN affects system-level routing — all concurrent scans will route through the active tunnel
|
|
700
729
|
- Both `vpn` (WireGuard) and `openvpn` can be set, but `vpn` takes precedence
|
|
730
|
+
- Ghost-cursor (`cursor_mode: "ghost"`) is optional — install with `npm i ghost-cursor`. Falls back to built-in mouse if not installed
|
|
731
|
+
- Ghost-cursor duration defaults to `interact_duration` (or 2000ms), capped by the 15s hard timeout
|
|
701
732
|
|
|
702
733
|
---
|