XBotz commited on
Commit
e1596ef
Β·
unverified Β·
1 Parent(s): 2e625ce

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +130 -0
README.md ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # πŸ”“ Cloudflare Turnstile Solver
2
+
3
+ Solver Cloudflare Turnstile otomatis menggunakan Puppeteer dengan stealth plugin. Mendukung multi-thread, proxy rotation, dan custom user-agent.
4
+
5
+ ## ✨ Fitur
6
+
7
+ - Solve Cloudflare Turnstile secara otomatis
8
+ - Browser pool (multi-thread) untuk concurrent solving
9
+ - Support proxy rotation dari file `data/proxies.txt`
10
+ - Custom user-agent dari file `data/useragents.txt` atau fallback otomatis
11
+ - Output token dalam format JSON
12
+ - CLI-friendly, bisa diintegrasikan ke script lain
13
+
14
+ ## πŸ“¦ Instalasi
15
+
16
+ ```bash
17
+ npm install puppeteer-extra puppeteer-extra-plugin-stealth
18
+ ```
19
+
20
+ ## πŸš€ Penggunaan
21
+
22
+ ### CLI
23
+
24
+ ```bash
25
+ node turnstile-solver.js --url <url> --sitekey <sitekey> [options]
26
+ ```
27
+
28
+ **Contoh:**
29
+
30
+ ```bash
31
+ # Basic
32
+ node turnstile-solver.js --url https://example.com --sitekey 0x4AAAAAAA...
33
+
34
+ # Headless + proxy + 3 thread
35
+ node turnstile-solver.js --url https://example.com --sitekey 0x4AAAAAAA... --headless --proxy --threads 3
36
+
37
+ # Dengan action parameter
38
+ node turnstile-solver.js --url https://example.com --sitekey 0x4AAAAAAA... --action login
39
+ ```
40
+
41
+ ### Options
42
+
43
+ | Flag | Deskripsi | Default |
44
+ |------|-----------|---------|
45
+ | `--url` | URL target (wajib) | - |
46
+ | `--sitekey` | Sitekey Turnstile (wajib) | - |
47
+ | `--action` | Action parameter widget | - |
48
+ | `--threads` | Jumlah browser di pool | `1` |
49
+ | `--headless` | Jalankan browser headless | `false` |
50
+ | `--proxy` | Aktifkan proxy rotation | `false` |
51
+
52
+ ### Output
53
+
54
+ ```json
55
+ {
56
+ "success": true,
57
+ "creator": "XAi Community",
58
+ "token": "0.eyJhbGci...",
59
+ "time": 4.231
60
+ }
61
+ ```
62
+
63
+ Kalau gagal:
64
+
65
+ ```json
66
+ {
67
+ "success": false,
68
+ "error": "Token not received",
69
+ "time": 30.012
70
+ }
71
+ ```
72
+
73
+ ## πŸ“ Struktur File Opsional
74
+
75
+ ```
76
+ data/
77
+ β”œβ”€β”€ proxies.txt # satu proxy per baris (format: http://host:port atau http://user:pass@host:port)
78
+ └── useragents.txt # satu user-agent per baris
79
+ ```
80
+
81
+ Kalau file-file ini tidak ada, solver tetap jalan pakai fallback UA bawaan dan tanpa proxy.
82
+
83
+ ### Contoh `proxies.txt`
84
+
85
+ ```
86
+ http://123.45.67.89:8080
87
+ http://user:pass@98.76.54.32:3128
88
+ ```
89
+
90
+ ### Contoh `useragents.txt`
91
+
92
+ ```
93
+ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0 Safari/537.36
94
+ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/123.0 Safari/537.36
95
+ ```
96
+
97
+ ## πŸ”§ Penggunaan sebagai Module
98
+
99
+ ```js
100
+ const { TurnstileSolver } = require('./turnstile-solver');
101
+
102
+ const solver = new TurnstileSolver({
103
+ headless: true,
104
+ threads: 2,
105
+ useProxy: false,
106
+ });
107
+
108
+ await solver.initialize();
109
+
110
+ const result = await solver.solve('https://example.com', '0x4AAAAAAA...');
111
+ console.log(result);
112
+
113
+ await solver.cleanup();
114
+ ```
115
+
116
+ ## βš™οΈ Cara Kerja
117
+
118
+ 1. Solver inject HTML Turnstile widget ke URL target menggunakan request interception
119
+ 2. Browser membuka halaman dan menunggu widget Cloudflare load
120
+ 3. Solver klik widget, lalu polling token setiap 1 detik (maks 30 detik)
121
+ 4. Token dikembalikan dalam format JSON beserta waktu solve
122
+
123
+ ## πŸ“‹ Requirements
124
+
125
+ - Node.js >= 18
126
+ - Chromium (otomatis diinstall oleh Puppeteer)
127
+
128
+ ## ⚠️ Disclaimer
129
+
130
+ Tool ini dibuat untuk keperluan edukasi dan testing. Penggunaan untuk bypass proteksi tanpa izin pemilik situs adalah tanggung jawab pengguna sepenuhnya.