ゴーディフェンダー
https://discord.gg/qeYaYK4JKq
ゴーディフェンダー
この Go パッケージは、さまざまな形式のデバッグ ツールや仮想化環境を検出して防御する機能を提供します。ちなみに、簡単にセットアップするには、 install.bat
を実行します。
仮想化対策
- トリアージ検出: システムがトリアージまたは分析環境で実行されているかどうかを検出します。
- メトリックの監視: システム メトリックを監視して、仮想化を示す異常な動作を特定します。
- VirtualBox の検出: Oracle VirtualBox の存在を検出します。
- VMware 検出: VMware 仮想化ソフトウェアの存在を検出します。
- KVM チェック: カーネルベースの仮想マシン (KVM) ハイパーバイザーをチェックします。
- ユーザー名チェック: 現在のユーザーがデフォルトの仮想化ユーザーであるかどうかを確認します。
- 最近のユーザー アクティビティ: ユーザー アクティビティをチェックします。ファイルが 20 個未満の場合は終了します。
- USB マウント: 以前に USB がコンピューターに接続されたことがあるかどうかを確認します。
- VM アーティファクト: 仮想マシン (VM) によって残されたアーティファクトを識別します。これは、VM 環境の存在を示す可能性があります。
- Parallels Check : Windows およびその他のゲスト オペレーティング システムの実行に使用される、macOS 用の一般的な仮想化ソフトウェアである Parallels Desktop を検出します。
- QEMU 検出: オープンソース マシン エミュレーターおよびバーチャライザーである QEMU の存在を識別します。これは、仮想マシンの検出を示す可能性があります。
アンチデバッグ
このモジュールには、実行中のプロセスのデバッグと分析を検出および防止する機能が含まれています。
- IsDebuggerPresent : デバッガーが現在プロセスにアタッチされているかどうかを確認します。
- リモート デバッガー: リモート デバッガーがプロセスに接続されているかどうかを検出します。
- PC 稼働時間: システムの稼働時間を監視し、システムの再起動に基づいてデバッグの試行を検出します。
- ブラックリストに記載された Windows 名を確認する: プロセス名が、デバッガーによって一般的に使用されるブラックリストに記載された名前と一致するかどうかを確認します。
- 実行中のプロセス: 実行中のプロセスのリストを取得し、潜在的な悪意のあるプロセスを特定します。
- 親アンチデバッグ: 親プロセスが現在のプロセスをデバッグしようとしているかどうかを検出します。
- 不正なプロセスを確認します。システム上で検出された場合は、オプション (ブール値) に基づいて何らかの処理を実行します。
- ユーザーモードのアンチアンチデバッガーを検出: ScyllaHide (BASIC / VMP プラグイン) のようなユーザーモードのアンチアンチデバッガーを検出します。
- インターネット接続チェック: インターネット接続が存在するかどうかを確認します。
プロセスユーティリティ
アプリにおそらく必要な ProcessUtils
- クリティカルプロセス: システム運用に不可欠なクリティカルプロセスを管理する機能を実装します。
- ランタイムの設定: アプリのランタイムを指定したランタイムに設定します:
MacOS,Linux,Windows
- すべてのトークンを有効にする: 現在のプロセスのすべてのトークン Windows 権限を有効にします。
- IsAdmin - 管理者のリクエスト: 現在のプロセスの管理者をリクエストし、現在のプロセスが管理者であるかどうかを確認します。
DLL インジェクション対策
- DLL にパッチを適用する: バイナリ イメージ署名軽減ポリシーを利用して、Microsoft 以外のバイナリの挿入を防ぎます。
簡単な概要
- 関数アドレスの不正な命令をチェックすることにより、一般的なアンチデバッグ関数のほとんどのアンチデバッグ フック メソッドを検出します (x64 で最も効果的)。また、ScyllaHide などのユーザーモードのアンチアンチデバッガーも検出し、フックを使用してアプリケーションの動作/アクティビティを監視する一部のサンドボックス (Tria.ge など) も検出できます。
クレジット
- https://github.com/AdvDebug : このパッケージを作成し始めるきっかけになりました。彼がいなかったら、ここには存在しなかったでしょう。彼の GitHub をチェックしてください。
- https://github.com/MmCopyMemory : アイデアなどを提供しました。彼の GitHub をチェックしてください。
- https://github.com/bytepulze : エラー/修正については、彼の Github をチェックしてください
- これを作成したのは、誰かが私の他の Go プログラムをクラックまたは分析しようとしていることに気づいたからです。以前は、デバッグ対策コードが何行もあったので (遅延コードを作成し、すべてを 1 つにまとめました)、リバース エンジニアリングが困難になるような、迅速で信頼性の高いコードを作成したいと考えていました。ということで、GoDefenderを作りました。