this was so much pain to figure out

This commit is contained in:
lolcat 2025-08-10 16:39:11 -04:00
parent da1ea1d6e8
commit dea8b0a362
1 changed files with 4 additions and 13 deletions

View File

@ -21,7 +21,7 @@ First, compile curl-impersonate (the firefox flavor).
```sh ```sh
git clone https://github.com/lwthiker/curl-impersonate/ git clone https://github.com/lwthiker/curl-impersonate/
cd curl-impersonate cd curl-impersonate
sudo apt install build-essential pkg-config cmake ninja-build curl autoconf automake libtool python3-pip libnss3 sudo apt install build-essential pkg-config cmake ninja-build curl autoconf automake libtool python3-pip libnss3 libnss3-dev
mkdir build mkdir build
cd build cd build
../configure ../configure
@ -30,15 +30,6 @@ sudo make firefox-install
sudo ldconfig sudo ldconfig
``` ```
Once you did this, you should be able to run the following inside your terminal:
```sh
$ curl_ff117 --version
curl 8.1.1 (x86_64-pc-linux-gnu) libcurl/8.1.1 NSS/3.92 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 nghttp2/1.56.0
Release-Date: 2023-05-23
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IDN IPv6 Largefile libz NTLM NTLM_WB SSL threadsafe UnixSockets zstd
```
Now, after compiling, you should have a `libcurl-impersonate-ff.so` sitting somewhere. Mine is located at `/usr/local/lib/libcurl-impersonate-ff.so`. Do some patch fuckery: Now, after compiling, you should have a `libcurl-impersonate-ff.so` sitting somewhere. Mine is located at `/usr/local/lib/libcurl-impersonate-ff.so`. Do some patch fuckery:
```sh ```sh
@ -56,16 +47,16 @@ curl: /usr/local/lib/libcurl.so.4: no version information available (required by
curl: symbol lookup error: curl: undefined symbol: curl_global_trace, version CURL_OPENSSL_4 curl: symbol lookup error: curl: undefined symbol: curl_global_trace, version CURL_OPENSSL_4
``` ```
Which sucks balls, but you should be able to run this: Or not... During testing, I've seen that sometimes curl still works for some reason. What really matters is the output of this command:
``` ```
root@fuckedmachine:/# php -r 'print_r(curl_version());' | grep ssl_version root@fuckedmachine:/# php -r 'print_r(curl_version());' | grep ssl_version
[ssl_version_number] => 0 [ssl_version_number] => 0
[ssl_version] => NSS/3.92 [ssl_version] => NSS/3.92
``` ```
It's very hacky, yes thank you for noticing. There's also the option of using the [forked project](https://github.com/lexiforest/curl-impersonate), but that garbage doesn't support NSS. I'm kind of against impersonating chrome cause you never know when Google is gonna add more fingerprinting bullshit. It **MUST** say NSS, otherwise it didn't work. There's also the option of using the [forked project](https://github.com/lexiforest/curl-impersonate), but that garbage doesn't support NSS. I'm kind of against impersonating chrome cause you never know when Google is gonna add more fingerprinting bullshit.
If you want a functioning `curl` command line utility again, you can do the following hack: Appendix: If you want a functioning `curl` command line utility again in case it doesn't work anymore, you can do the following hack:
``` ```
sudo apt remove curl sudo apt remove curl