Commit Graph
255 Commits
Author SHA1 Message Date
lwthiker e82bd9679d Fix memory leak due curl-impersonate custom args 2024-02-27 20:47:56 +02:00
lwthiker 1f2bbd6565 Update zlib version in CI tests v0.6.0 2024-02-10 18:59:23 +02:00
lwthiker 7bca88691d Bump version to 0.6.0 2024-02-10 18:50:57 +02:00
lwthiker 845db62e79 Merge pull request #186 from lwthiker/enable_websocket
Build curl with websocket support
2023-09-18 13:03:54 +03:00
lwthiker d050701b7c Build curl with websocket support
Enable curl's websocket handling with --enable-websockets.
2023-09-16 11:18:45 +03:00
Alexandre Alapetiteandlwthiker 172f5185cc Update Docker base images (#168)
Update Docker base images to debian bookworm.
Reduce size of Debian image (remove apt cache) by 10MB
And also minor Markdown lint of INSTALL.md

---------

Co-authored-by: lwthiker <[email protected]>
2023-09-16 11:16:41 +03:00
lwthiker 1e8b50f2ce Merge pull request #185 from lwthiker/remove_false_start
Remove --false-start flag
2023-09-16 09:53:02 +03:00
lwthiker 686cb75967 Remove --false-start flag
Remove the --false-start flag completely. In the Chrome version it has
no affect, and in the Firefox version it may cause connection errors.
This flag doesn't seem to affect TLS or HTTP signatures so is safe to
remove.

The flag seems to cause connection errors with some
http/2 servers. The server chooses http/2 based on alpn but curl
initiates a http/1.1 connection instead. This is an upstream bug in curl
that affects us as well.
2023-09-16 09:09:00 +03:00
lwthiker c7ea3694bb Merge pull request #184 from lwthiker/chrome116_and_ff_117
Add new Chrome (116) and Firefox (117) versions
2023-09-15 18:49:21 +03:00
lwthiker fe90762831 Add new Chrome (116) and Firefox (117) versions 2023-09-15 18:15:44 +03:00
lwthiker b0c725fcf5 Upgrade nss to 3.92 (#176)
The nss version currently in use does not build with gcc 13. Upgrade to
nss 3.92.
2023-09-15 18:07:51 +03:00
lwthiker d48a572344 Upgrade baseline curl to 8.1.1 (#160)
* Upgrade baseline curl to 8.1.1

New curl version includes bugfixes, new options but mainly websocket
support which was long requested in curl impersonate. Upstream curl
reworked a lot of their http2 code which necessitated a lot of changes
on our side as well.

* Fix build on mac due to bad header priorities

On macos, clang gives priority to /usr/local/include
over locations specified with -isystem for some unknown reason. In turn
this causes clang to use the system's openssl, which conflicts with
curl-impersonate's boringssl headers.
To prevent that, disable curl's automatic conversion of -I flags to
-isystem.

* Upgrade zlib version

* Upgrade GitHub Mac runner to macos-12

* Upgrade nghttp2 version to 1.56.0

curl-8.1.1 uses an nghttp2 function that only exists in newer versions
of nghttp2.
2023-09-15 17:46:02 +03:00
djoldman b4c4a7374c Fix typos in 02_USAGE.md (#171) 2023-08-29 11:49:43 +03:00
Rasselio Diack c12ac8b125 Update INSTALL.md for macOS steps (#172) 2023-08-29 11:49:19 +03:00
Nico Kokonas d1d9264f55 Fix typos in usage docs (#152) 2023-08-10 14:08:36 +03:00
Brett Jia 9303ce340f Cross-compile armv7l binaries for 32-bit Raspberry Pi's (#167)
Build arm binaries for 32-bit architecture.
Use patch based on https://github.com/curl/curl/pull/9054.
2023-07-17 10:37:06 +03:00
lwthiker e987cd6646 Update version and README v0.5.4 2023-02-26 10:23:39 +02:00
lwthikerandJohann Saunier 9d05a81030 Impersonate Chrome 110 (#148)
Add support for impersonating Chrome 110. Chrome 110 comes with TLS
extension permutation enabled by default. We mimic this behavior in libcurl with
the new CURLOPT_SSL_PERMUTE_EXTENSIONS option, which enables the
corresponding flag in BoringSSL.

---------

Co-authored-by: Johann Saunier <[email protected]>
2023-02-25 11:29:14 +02:00
lwthiker b2b1ea0f8e Merge pull request #140 from lwthiker/firefox109
Impersonate Firefox 109
2023-01-29 10:05:05 +02:00
lwthiker 54693023a3 Impersonate Firefox 109
Firefox impersonation was not updated in a long while. Add impersonation
for Firefox 109. The TLS signature is identical to previous versions,
with the usual changes to the HTTP headers.

Update NSS to the latest version as well, even though it is not
strictly necessary for the impersonation.
2023-01-28 18:37:40 +02:00
lwthiker c011dbc2b2 Merge pull request #123 from lwthiker/chrome107
Add support for impersonating Chrome 107
2022-11-14 14:03:35 +02:00
lwthiker ba6f29dfc6 Remove nss verbose build flag
Remove the verbose build flag that was previously added for debugging.
2022-11-14 13:49:11 +02:00
lwthiker 50b13b1db5 Use Python 3.10 in GitHub workflow
Python 3.11 breaks the gyp-next pip package which is used in the build
process to compile nss. It seems that gyp-next has no updated version to
fix that. Use Python 3.10 instead as a temporary fix.
2022-11-14 11:23:01 +02:00
lwthiker 094158f164 Make NSS build verbose for debugging 2022-11-14 10:17:11 +02:00
lwthiker 74c44c890f Add missing wrapper script and fix README 2022-11-13 08:16:45 +02:00
lwthiker 5fac7d22c8 Use zlib-1.2.13 when cross compiling
zlib-1.2.12 seems to be unavailable anymore. Upgrade to 1.2.13.
2022-11-12 22:12:20 +02:00
lwthiker 1ab42e1111 Add support for impersonating Chrome 107
Chrome 107 was recently released. The only difference in signature from
previous Chrome versions is that an HTTP2_NO_SERVER_PUSH setting is sent
in the HTTP2 SETTINGS frame.
2022-11-12 21:49:35 +02:00
lwthiker 89eef11ba4 Merge pull request #118 from wrobelda/docker_bullseye
Dockerfile: use bullseye as Debian base
2022-10-08 12:16:54 +03:00
lwthiker 6d61f7dbdd Merge pull request #117 from lilyinstarlight/fix/disable-static
Fix --disable-static and --enable-static=no
2022-10-08 11:42:41 +03:00
Dawid Wróbel f8be027a2a Dockerfile: use bullseye as Debian base 2022-10-05 17:11:24 +02:00
Lily Foster 4a9c4027b8 Fix --disable-static and --enable-static=no 2022-10-03 20:13:43 -04:00
lwthiker f36059324c Merge pull request #110 from lwthiker/release_0_5_3
Release version 0.5.3
v0.5.3
2022-09-15 15:54:37 +03:00
lwthiker e21295a321 Increase version to 0.5.3 v0.5.3-alpha.1 2022-09-15 14:35:33 +03:00
lwthiker 15800b30f8 Merge pull request #108 from lwthiker/docs
Create docs/ folder with initial content
2022-09-10 19:12:58 +03:00
lwthiker 917f2988b6 Fix documentation links 2022-09-10 19:11:45 +03:00
lwthiker 27efac6b95 Create docs/ folder with initial content
Add more documentation on the following topics:
* Running `curl-impersonate` from the command line, including changing
the HTTP headers when needed.
* Using `libcurl-impersonate` in JS and PHP scripts.
2022-09-10 19:07:14 +03:00
lwthiker fa8bdcd4db Merge pull request #98 from lwthiker/chrome104
Add impersonation support for Chrome 104
2022-08-11 10:56:40 +03:00
lwthiker aa45fecf45 Add impersonation support for Chrome 104 2022-08-11 10:31:32 +03:00
lwthiker 6f45c8341c Update README.md with additional dependencies 2022-08-03 10:17:21 +03:00
lwthiker cb9a8df6e7 Merge pull request #91 from wrobelda/docs-deps-notes
Docs: add notes on dependencies, fix links
2022-08-03 10:02:26 +03:00
lwthiker 45b2248641 Merge branch 'main' into docs-deps-notes 2022-08-03 10:02:03 +03:00
lwthiker 10aa2059ed Merge pull request #96 from lwthiker/dont_ignore_curlopt_useragent
Don't ignore useragent from CURLOPT_USERAGENT
2022-07-30 16:22:08 +03:00
lwthiker 17aff1501e Don't ignore useragent from CURLOPT_USERAGENT
When impersonating with libcurl, the built-in user agent used for
impersonation was overriding and useragent the user had set via
CURLOPT_USERAGENT. The fix takes care to specifically handle user agent
set with CURLOPT_USERAGENT and use it instead of the built-in one when
it is supplied.
2022-07-30 15:48:39 +03:00
lwthiker 52d74d29ea Merge pull request #94 from lwthiker/control_headers_from_env_var
Allow disabling built-in HTTP headers
2022-07-30 11:19:47 +03:00
lwthiker bbaec0fad0 Update version to 0.5.2 v0.5.2 2022-07-30 10:11:06 +03:00
lwthiker d53732485e Merge pull request #95 from lwthiker/push_debian_docker
Push Debian-based Docker images to DockerHub
2022-07-30 10:09:13 +03:00
lwthiker a87d3d9d52 Install ca-certificates in the Debian containers v0.5.2-alpha.4 2022-07-30 09:37:23 +03:00
lwthiker c90b33a605 Run ldconfig in Debian Docker images only v0.5.2-alpha.3 2022-07-29 21:58:38 +03:00
lwthiker 8f19c20868 Run 'ldconfig' in Docker images
Run ldconfig to update the loader's cache. This is necessary
specifically on the Debian image since we put .so files in /usr/local.
v0.5.2-alpha.2
2022-07-29 21:05:29 +03:00
lwthiker 0ba5f83291 Fix bug in the minicurl test utility 2022-07-29 19:53:23 +03:00