{"id":24427596,"url":"https://github.com/bstrdlord/ja3-spoof","last_synced_at":"2025-07-25T20:03:58.838Z","repository":{"id":230244301,"uuid":"778867707","full_name":"bstrdlord/ja3-spoof","owner":"bstrdlord","description":"http client for zig that spoofs tls/ssl ja3","archived":false,"fork":false,"pushed_at":"2024-03-29T08:32:18.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T12:12:10.562Z","etag":null,"topics":["curl","ja3","spoof","ssl","tls","zig","zig-package"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bstrdlord.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-28T15:09:29.000Z","updated_at":"2024-03-30T01:25:30.000Z","dependencies_parsed_at":"2024-03-28T16:35:59.811Z","dependency_job_id":"0cd21891-777b-4a55-8970-30b8b34a4399","html_url":"https://github.com/bstrdlord/ja3-spoof","commit_stats":null,"previous_names":["blockkwork/ja3-spoof","bstrdlord/ja3-spoof"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstrdlord%2Fja3-spoof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstrdlord%2Fja3-spoof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstrdlord%2Fja3-spoof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstrdlord%2Fja3-spoof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bstrdlord","download_url":"https://codeload.github.com/bstrdlord/ja3-spoof/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243447509,"owners_count":20292448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curl","ja3","spoof","ssl","tls","zig","zig-package"],"created_at":"2025-01-20T12:12:11.564Z","updated_at":"2025-03-13T16:48:34.257Z","avatar_url":"https://github.com/bstrdlord.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TTL/SSL JA3 Spoof\n\n\u003cimg src=\"https://raw.githubusercontent.com/ziglang/logo/9d06c090ca39ef66019a639241ea2d7e448b9fe1/ziggy.svg\" width=\"300\"\u003e\n\n**A curl-based zig http client that can spoof [tls/ssl ja3](https://github.com/salesforce/ja3)**\n\n### 📦 Installing\n\n#### 1. Install ja3_spoof\n```\nzig fetch --save https://github.com/blockkwork/ja3-spoof/archive/refs/tags/[LATEST TAG].tar.gz\n```\nExample\n```\nzig fetch --save https://github.com/blockkwork/ja3-spoof/archive/refs/tags/0.0.1.tar.gz\n```\n\n#### 2. Add ja3_spoof to build.zig\nAdd to build.zig\n```zig\nconst ja3_spoof = b.dependency(\"ja3_spoof\", .{}).module(\"ja3_spoof\");\nexe.root_module.addImport(\"ja3_spoof\", ja3_spoof);\n```\n\n\n### 🚀 Examples\nExample in ./examples folder \n\n Run with command: \n```\nmake EXAMPLE\n```\n\n```zig\nconst client = ja3_spoof.init(.{\n        .allocator = allocator,\n        .custom_cookies = \"Cookie\",\n        .custom_user_agent = \"ja3 spoof\",\n        .custom_ciphers = \"AES256-SHA\",\n}) catch |err| {\n        std.debug.print(\"error: {}\\n\", .{err});\n        return;\n};\n\nconst response = client.send(\"https://tools.scrapfly.io/api/tls\") catch |err| {\n        std.debug.print(\"error: {}\\n\", .{err});\n        return;\n};\n\nstd.debug.print(\"status_code: {}\\nresponse: {s}\\n\", .{ response.status_code, response.response });\n```\n\n\n\n### 🛡️ Spoofing\nTo spoof ja3 you need to change .custom_ciphers to any other in Client Options\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbstrdlord%2Fja3-spoof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbstrdlord%2Fja3-spoof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbstrdlord%2Fja3-spoof/lists"}