Installation instructions for the multi-threaded version of ZloyProxy
Author: Zl0y
Source: Telegram channel Zl0yTeam
Original publications: telegra.ph/Ustanovka-Zloyproxy-04-28 and telegra.ph/Mnogo-potochnaya-versiya-ZLoyProxy-02-21
1. Main advantages of multi-threading
- Running multiple ports/proxies simultaneously – easy to scale to any number of threads (e.g., for ZennoPoster).
- Dynamic fingerprint management (JA3/HTTP2/proxy) via API – allows changing parameters "on the fly" for each port.
- Maximum uniqueness – increases the chances of bypassing modern anti-bot systems.
- Flexibility and ease of use – parameters are set in a single TSV file and can be changed via POST requests if necessary.
2. Installation and preparation
For Ubuntu
-
Download the multi-threaded build (example using version v3.10.4o for amd64):
(For other architectures, please send a PM.) -
Grant execution permissions:
For Windows
Open PowerShell as an administrator and run:
-
Create a folder and navigate to it:
-
Download the program:
Invoke-WebRequest -Uri http://172.86.96.108:16342/mitmproxy_mt_windows_amd64_v3.10.4api -OutFile zloyproxy_mt.exeAfter executing these commands, the file
zloyproxy.exewill appear in theC:\Proxyfolder. -
Important for Windows:
- You must pre-install npcap and wpcap (https://npcap.com/ https://www.winpcap.org/install/). During installation, select the option where only administrators can have access.
- The program must be installed and run as an administrator.
All other steps are the same as for Ubuntu (just without sudo ./), run as an administrator.
3. TSV file preparation
The main "feature" of multi-threading is that you can specify multiple ports and fingerprints (JA3/HTTP2) at once, and if desired, a proxy for each port.
TSV template
An example file can be viewed here: http://172.86.96.108:16342/file.tsv
Structure:
port,ja3,http2,proxy
8000,<JA3_STRING>,<HTTP2_STRING>,socks5://login:pass@192.168.0.10:1080
8001,<JA3_STRING>,<HTTP2_STRING>,http://login:pass@192.168.0.20:8080
8002,<JA3_STRING>,<HTTP2_STRING>,<can_be_without_proxy>
- port – any available port. A separate thread (proxy) will run on each of them.
- ja3 – string with the TLS fingerprint (JA3).
- http2 – string with parameters for the HTTP/2 fingerprint.
- proxy – (optional) if you need to route traffic through an additional proxy (SOCKS5 or HTTP). If not specified in the TSV, you can set a global proxy using the
-proxyparameter at launch or change it via the API.
Example of a small TSV:
port,ja3,http2,proxy
8000,"771,4865-4867-...","1:65536,4:131072,5:16384|12517377|m,p,a,s",socks5://login:pass@192.168.0.10:1080
8001,"771,4865-4867-...","1:65536,4:131072,5:16384|12517377|m,p,a,s",http://login:pass@45.67.89.10:8080
8002,"771,4865-4867-...","1:65536,4:131072,5:16384|12517377|m,p,a,s",
(HTTP2, JA3, and proxies must be enclosed in quotes if they contain commas, as the commas will break the TSV formatting.)
4. Launching multi-threading
-
Navigate to the directory where
zloyproxy_mtis located:
-
Run:
-
If necessary, to set a common proxy for all ports (if not specified in the TSV):
After launching, you will see a list of ports on which your multi-threaded HTTP proxies are running.
5. Managing fingerprints and proxies via API
The multi-threaded version provides an HTTP API (available by default at http://127.0.0.1:8888), which allows you to change the JA3, HTTP2, and proxy for a specific port "on the fly".
5.1. Changing JA3/HTTP2
curl -X POST http://127.0.0.1:8888/change/fingerprints \
-d '{
"port": 8000,
"ja3": "771,4865-4866-4867,...",
"http2": "1:65536,4:131072,5:16384|12517377|m,p,a,s"
}'
port– the port number, as in the TSV.ja3– the new fingerprint string.http2– the new HTTP/2 fingerprint string.
5.2. Changing the proxy
curl -X POST http://127.0.0.1:8888/change/proxy \
-d '{
"port": 8000,
"proxy": "socks5://login:pass@123.45.67.89:1080"
}'
port– the port number, as in the TSV.proxy– the new proxy (can besocks5orhttp/https).
5.3. Typical workflow in ZennoPoster
- Set up multiple threads.
- In each thread:
- Take a "free port" from the list (8000, 8001, etc.).
- Send an API request to
http://127.0.0.1:8888/change/fingerprintsand/orchange/proxyif you need to change the fingerprint/proxy. - Run an action in ZennoPoster using the HTTP proxy
127.0.0.1:port(without authorization). - If necessary, change the proxy or fingerprints again via API requests.
6. Proper shutdown
To correctly stop the multi-threaded proxy and avoid "stuck" processes:
Linux
- Press CTRL + C in the tab where
zloyproxy_mtis running. - If the program has "frozen" or CTRL + C doesn't help, use:
7. Additional tips and recommendations
- Use residential or mobile proxies – they are banned less often.
- Experiment with different JA3/HTTP2 – sometimes sites are sensitive to specific cipher suites.
- Certificates (for MITM substitution) can be generated with the
-certflag (just like in the single-thread version), or downloaded via a link if you have one. - Check fingerprints on these services:
That's it! If you have any questions, feel free to send a PM.