Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
invisible_playwright — Playwright用の無料アンチディテクトブラウザステルス:検出されないヘッドレスFirefoxフィンガープリント。Pythonスクレイピング、reCAPTCHAおよびボット検出バイパス。オープンソース | Kitploit
ツール/GitHubGitHub/feder-cr/invisible_playwright
IDS/IPS回避なりすましツールウェブセキュリティアンチボットフィンガープリントスプーフィングCAPTCHAバイパス
GitHubfeder-cr/invisible_playwright

invisible_playwright

Playwright用の無料アンチディテクトブラウザステルス:検出されないヘッドレスFirefoxフィンガープリント。Pythonスクレイピング、reCAPTCHAおよびボット検出バイパス。オープンソース

リポジトリを見る
1.8k2014116時間18分前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
invisible_playwright

Playwright 向けの無料アンチディテクトブラウザステルス: 検出されない Firefox フィンガープリント、ヘッドレスまたはヘッド付き。
Python ウェブスクレイピングと captcha バイパス。オープンソースで、あらゆるボット検出テストに合格します。

invisible_playwright - 5/5 detection suites passed

仕組み

アンチボットは 2 つの質問を投げかけ、reCAPTCHA、hCaptcha、Cloudflare Turnstile がその回答を採点します。invisible_playwright は両方に「はい」と答えます。

1. これは本物のブラウザか? はい。C++ ソースレベルでパッチを当てた Firefox です。

  • ブラウザフィンガープリントはページに注入されるのではなく、エンジン内部で設定されます: navigator、screen、GPU/WebGL、canvas、フォント、オーディオ、WebRTC、タイムゾーン、ネットワーク。ヘッドレスでもヘッド付きでも、どちらでも同じ値になります。
  • JS シムも、オーバーライドも、読み取られる継ぎ目もありません。

2. 本物の人間が使っているか? はい。操作はドライバー内で人間らしくされます。

  • すべてのクリック、ホバー、ドラッグは、人間のタイミングを伴う自然なマウス軌道に従い、カーソルがテレポートすることはありません。
  • 各入力は本物のマウスとバイト単位で同一です: 本物の入力ソース、圧力、信頼されたイベント。

インストール

root@kitploit:~
pip install invisible-playwright
python -m invisible_playwright fetch      # one-time download, sha256-verified: 240 MB (Windows) / 262 MB (Linux x86_64) / 253 MB (Linux arm64), about 550 MB unpacked

Python 3.11 以降が必要です。

対応プラットフォーム: Windows x86_64、Linux x86_64 / arm64。


使い方

セッションごとのランダムフィンガープリント

Playwright の API、同期と非同期、コード変更なし。 同じオブジェクト、同じ呼び出し、同じ戻り値。一部のサーフェスは対象外です - tracing、HAR、CDP、API リクエストコンテキスト - また go_back() と go_forward() は復元されたページの不具合により保留されています。いずれも静かに誤動作するのではなく、理由を述べた一文で拒否します。すでに Playwright を使っているなら、切り替えは 2 行です:

root@kitploit:~
- from playwright.sync_api import sync_playwright
- with sync_playwright() as p:
-     browser = p.firefox.launch()
+ from invisible_playwright import InvisiblePlaywright
+ with InvisiblePlaywright() as browser:

すべてのセッションが固有のフィンガープリント (GPU、オーディオ、フォント、画面、約 200 フィールド) とベジェ曲線のマウス動作を取得します。

同期

root@kitploit:~
from invisible_playwright import InvisiblePlaywright

with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = browser.new_page()
    page.goto("https://example.com")
    page.click("#submit")   # mouse arcs to the button on a Bezier curve

非同期

root@kitploit:~
from invisible_playwright.async_api import InvisiblePlaywright

async with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = await browser.new_page()
    await page.goto("https://example.com")
    await page.click("#submit")

browser オブジェクトは playwright.sync_api.Browser / playwright.async_api.Browser であり、すべての Playwright メソッドがそのまま動作します。

シードをログに記録して実行を再現できます:

root@kitploit:~
sf = InvisiblePlaywright()
with sf as browser:
    print("seed =", sf.seed)
    # ...

再現可能なフィンガープリント

root@kitploit:~
with InvisiblePlaywright(seed=42) as browser:
    ...   # same GPU, same canvas hash, same audio context, every run

プロキシ

root@kitploit:~
proxy = {
    "server": "socks5://gate.example.com:1080",
    "username": "user",
    "password": "pass",
}
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

対応スキーム: socks5、socks4、http、https。DNS はデフォルトでプロキシ経由でルーティングされ、ローカルリークはありません。

タイムゾーン

ブラウザのタイムゾーンは timezone= に従います:

root@kitploit:~
# default: timezone is auto-derived from the egress IP (proxy egress if a
# proxy is set, otherwise the host's own public IP)
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

# explicit IANA zone always wins, the only way to force a specific zone
with InvisiblePlaywright(proxy=proxy, timezone="America/New_York") as browser:
    ...

特定のフィンガープリントフィールドの固定

デフォルトではすべてが seed から取得されます。残りはシード由来のまま、特定の値を強制するには:

root@kitploit:~
with InvisiblePlaywright(
    seed=42,
    pin={
        "gpu.renderer": "ANGLE (AMD, Radeon R9 200 Series Direct3D11 vs_5_0 ps_5_0, D3D11)",
        "gpu.vendor":   "Google Inc. (AMD)",
        "screen.width":  2560,
        "screen.height": 1440,
        "hardware.concurrency": 16,
    },
) as browser:
    ...

GPU の pin は自由な文字列を設定するのではなく、検証済みペルソナの 1 つを選択します。 なぜなら約 81 個の getParameter 値と拡張機能リストがレンダラー名とともに移動し、 検出器がそれらを相互照合するからです。プールに存在しない名前を指定すると例外が発生し、 エラーには存在する名前が列挙されます。

固定可能なキーの完全なリスト、pin がベイジアンサンプラーとどのように相互作用するか、 および一般的なパターンは docs/pinning.md にあります。


CLI

インストールされるコマンドは invisible-playwright で、ハイフン付きです。python -m invisible_playwright も同じように動作し、PATH に何も必要としません。

root@kitploit:~
invisible-playwright fetch    # download the engine if missing, check every cached
                              # one against the seal, print the path
invisible-playwright version  # wrapper, core and engine versions, and where the
                              # engine is cached

ドキュメント、ガイド、比較

スクリプトを書くよりプロンプトを出したいなら。 このページはエンジンであり、Python ライブラリです。コードを書かずに使う方法が 2 つあり、どちらも 1 行です: すでにお持ちの MCP クライアント (Claude Code、Claude Desktop、Cursor) からなら claude mcp add stealth -- uvx aihawk、詳しくは MCP サーバーページ を参照。または インターフェースとモデルが含まれ、OpenRouter キーだけが必要な場合は uvx aihawk ui --openrouter-key sk-or-...、詳しくは AIHawk を参照。土台は同じエンジンで、2 つ目は 1 つ目のクライアントです。

これらすべては wiki でより読みやすく、 検索可能で、1 つの平坦なリストではなく 4 つのセクションに整理されています:

  • ドキュメント - インストール、素の Playwright からの 2 行切り替え、プロキシ/タイムゾーンの 設定、特定フィールドの固定、CLI。
  • ガイド - 検出が実際にどのように 機能するかを 7 つのグループで解説: ブラウザアイデンティティ、canvas/WebGL/フォント/ オーディオ、ネットワークと WebRTC、自動化レイヤー、AI エージェント、ソースから 説明する検出器そのもの、そしてテスト。
  • 比較 - Camoufox、Patchright、nodriver、playwright-stealth との比較、および一般的に Chromium より Firefox を選ぶ理由。
  • 統合 - Scrapy、Crawlee、Robot Framework、CodeceptJS、テストランナー、Playwright MCP、および 適合しないフレームワークを名前を挙げて。

どこから始めればよいかわからない場合: Playwright を検出されなくする 3 つの方法 は他の多くのページがリンクする地図であり、Playwright が 1 つのサイトでボットとして検出される はトラブルシューティングの順序であり、navigator.webdriver はあなたが思うような手がかりではない はこの分野で最も有名なプロパティと、それだけにパッチを当ててもほとんど何も得られない理由を説明します。

検出器セクションは現在、商用アンチボット製品を名前を挙げて扱い、それぞれを 独自のドキュメントまたは確認されたリバースエンジニアリングから読み解いています: Cloudflare Bot Management と Turnstile、 DataDome、Kasada、 Akamai Bot Manager、 PerimeterX、hCaptcha、 Imperva、そして 残りのセット。

関連プロジェクト

これの他の部品。 エンジンは 3 つのうち中央にあり、その周りの 2 つが ほとんどの人がたどり着く方法です:

  • invisible_core - シードから フィンガープリント、設定、さらにプロキシとジオロケーションへ。このパッケージは それを固定します。
  • AIHawk - このエンジンを MCP サーバーとして (uvx aihawk、独自のモデルを持ち込む任意のクライアント向け)、 そして同じパッケージ内で、モデルを含むインターフェースを 1 つのコマンドで。 インターフェースはサーバーのクライアントであり、ブラウザへのプライベートな経路は ありません。

オープンソースの隣人たち。 どれが合うかは、あなたの問題がどのレイヤーにあるか、 そして Firefox と Chromium のどちらが必要かによります: Playwright を検出されなくする 3 つの方法 は 各レイヤーが何に到達できるかを掘り下げ、AI ブラウザエージェントとステルス はあなたの代わりに Chromium を CDP より選ぶフレームワークを扱います。

Firefox 側

  • Camoufox - これも C++ にパッチを当て、より広いサーフェスを持ち、シードから導出するのではなくフィンガープリントデータベースを同梱します。比較。
  • LibreWolf - 閲覧用のプライバシーデフォルト Firefox であり、自動化用ではありません。
  • arkenfox/user.js - 設定によるハードニング。設定で十分な場合はそれを使いましょう。

Chromium 側

  • Patchright - パッチを当てた Playwright フォーク: 作業はバイナリではなくドライバーに落ちます。比較。
  • nodriver - undetected-chromedriver の後継で、CDP 経由で Chrome を操作します。比較。
  • rebrowser-patches - Runtime.enable の CDP リークを修正します。比較。
  • fingerprint-suite - ベイジアンフィンガープリントジェネレーターで、その後ページに注入されます。比較。
  • playwright-with-fingerprints - 有料リモートサービスからの値、Windows 専用。比較。
  • playwright-stealth - init スクリプトのパッチで、メンテナー自身が概念実証と呼んでいます。比較。
  • puppeteer-extra-plugin-stealth - その系統の元祖で、最後の実質的なコミットは 2024 年半ば。それが意味すること。
  • selenium-stealth - Selenium での同じアプローチで、最後のコミットは 2021 年 12 月。それが意味すること。
  • pyppeteer - 自身の README によってメンテナンスされていないとされ、playwright-python を指しています。その推奨が何についてなのか。

エンジンにパッチされているもの

以下のすべてに 2 つのルールが当てはまります。すべての値はページが問い合わせる前に、 ブラウザ内部で決定されるため、見つけられる JavaScript シムはありません。そしてすべての値は 1 つのプロファイルから来るため、2 つのサーフェスが矛盾することはなく、これが なりすましブラウザが通常捕まる方法です。ソース: feder-cr/firefox_antidetect_patch。

アイデンティティ

  • navigator、ユーザーエージェント、クライアントヒントは一緒に導出されるため、矛盾できません: Playwright は navigator.webdriver を設定するか、クライアントヒントと Sec-Fetch。
  • navigator.languages と Accept-Language ヘッダーは同じ宣言であり、送信され、読み取られます: Accept-Language と navigator.languages。
  • 画面ジオメトリ、devicePixelRatio、それを露出するメディアクエリは、ホストから読み取られるのではなく宣言されます: devicePixelRatio と Firefox の pref、CSS メディアクエリフィンガープリンティング。

レンダリング

  • Canvas の読み戻しはシードごとに決定論的で、ブロックもノイズもなく実際の形状を保ちます: canvas フィンガープリントノイズ、canvas フィンガープリントが毎回変わる理由。
  • WebGL は一貫した GPU ペルソナを報告します: ベンダー、レンダラー、パラメータ制限は個別に設定されるのではなく相互照合されます: WebGL レンダラー文字列、WebGL パラメータは同一。
  • フォントはブラウザに同梱されるため、すべてのホストで同じ書体が存在し、プラットフォームのフォントエンジンが選択することはなくなります: プラットフォーム間で同梱されるフォント、ヘッドレスブラウザが異なるフォントをレンダリングする理由、JavaScript からインストール済みフォントを検出する。
  • テキストメトリクスはそれらのフォントに従います: measureText は 1 回の呼び出しで 10 個以上の数値を返し、権限プロンプトはありません: measureText と TextMetrics。
  • Canvas と WebGL は同じシードに対してオペレーティングシステム間で一致します: クロスプラットフォームの一貫性、canvas はオペレーティングシステム間で異なる。

オーディオとメディア

  • オーディオスタックはホストデバイスからではなくプロファイルから応答します: AudioContext フィンガープリンティング、サンプルレートとレイテンシ。
  • コーデックテーブルは宣言されるため、Linux ホストが Windows の質問に Linux のサポートで答えることはありません: コーデックフィンガープリンティング。

ネットワーク

  • WebRTC はプロキシ出口を運ぶ 1 つの合成候補を提示し、実際のアドレスを漏らしたり、何も提示しない (それ自体が手がかり) ことはありません: WebRTC ICE 候補のなりすまし、WebRTC IP はプロキシ出口と一致するか。
  • DNS はプロキシ経由で解決され、プロキシが設定にない場合も同様です: プロキシは DNS を漏らすか、プロキシ IP リークを確認する方法。
  • タイムゾーンはオフラインで解決された出口 IP から取得されるため、出口と一致します: タイムゾーンとプロキシの不一致、オフライン GeoIP タイムゾーン。

自動化レイヤー

  • 入力イベントは本物の入力パスから来るため、isTrusted は真であるから真になります: Playwright のクリックと isTrusted。
  • ポインタは人間の軌道とタイミングに従い、本物のデバイスが生成できるようなケイデンスで動きます: 人間のマウス動作、行動生体認証としてのマウスダイナミクス。
  • デバッガーサーフェスは、操作されたブラウザを露呈させるタイミングの質問に答えません: デバッガータイミング検出。
  • クローズドモードの shadow root に到達可能で、これは素の Playwright がどちらのエンジンでもできないことですが、ページは依然として null を読み取ります: クローズド shadow root。

ライセンス

MIT - LICENSE を参照。パッチを当てた Firefox バイナリは MPL-2.0 (Firefox 上流ライセンス) の下で配布されます。そのバイナリを生成する mozilla-central に対する C++ パッチは feder-cr/firefox_antidetect_patch にあります。


免責事項

このプロジェクトは教育目的のみです。現状のまま提供され、いかなる保証もありません。その使用方法について一切の責任を負いません。自己責任で、かつお住まいの法域の法律を遵守して使用してください。


Built by Federico Elia  LinkedIn

tests License: MIT Python 3.11+ Firefox 151.0 browser launches GitHub stars

ツールをダウンロード