
2026/04/27 5:18
FAS16:ス턱ネットより 5 年前に出現した高精度ソフトウェア・サボタージュ(悪意のある改ざん)ツール。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
最重要な発見は、「Fast16」という高度なサイバーサボタージュフレームワークの発見であり、先進物理学、核研究、暗号学、構造工学(特に LS-DYNA 970 は衝突試験や核シミュレーション向けに、PKPM は設計向けに、MOHID は水動力学向け)で使用される高精度ソフトウェアを静かに破損させる能力を有しています。通常のウイルスとは異なり、Fast16 は計算エンジンに特化して結果の精度を低下させることで、国の科学プロジェクトに深刻な脅威をもたらします。2005 年頃開発された主要なキャリアバイナリsvcmgmt.exe(2005 年 8 月 30 日 компィル済み)は、ステクスネットなどの有名な攻撃から 5 年以上、フラムから 3 年以上前に存在しており、埋め込み型の Lua 仮想マシンと共に fast16.sys という独自のプロンプト起動カーネルドライバ(2005 年 7 月 19 日 compild)を使用しています。このドライバはシステムファイル操作を傍受し、悪意のある指示を直接メモリに注入することで、感染の明確な兆候なしに破損を引き起こすことを保証します。フレームワークは「wormlet」を配置して、SMB共有とデフォルトパスワードを使用して Windows 2000/XP ネットワーク内に蔓延させますが、十八種類のアンチウイルスシグネチャを確認してから破壊ペイロードを実行するなど、高度な回避戦術も備えています。SentinelLABS は、fast16.sys, svcmgmt.exe, connotify.dll および疑わしいパッチ対象に対する検出ツール、すなわち YARA ルールとハッシュ値(MD5, SHA1, SHA256)を発表しています。この開示は、レガシーコンピューティング環境の再評価を緊急に要求させ、数十年前に存在した休眠的なサボタージュメカニズムが、現代の研究インフラにおいて依然としてアクティブなリスクであるという事実を浮き彫りにしました。
本文
要約
SentinelLABS は、コアコンポーネントの歴史が 2005 年まで遡る未公開のサイバー妨害フレームワークを発見しました。この攻撃は「fast16」として追跡されています。fast16.sys は高精密計算ソフトウェアを標的にし、メモリ上のコードを書き換えて結果を改ざんします。このペイロードに自己複製メカニズムを組み合わせたことで、攻撃者は施設全体で同等の不正確な計算結果を生成しようとしています。
2005 年のこの攻撃は、物理研究(特に原子力)、暗号学、先進物理学といった国家重要度の高価な超高精度計算タスクを標的とする妨害作戦の先駆けとなりました。「fast16」は Stuxnet の出現から少なくとも 5 年以上も前であり、同種の初例として的位置づけられます。組み込みのカスタム Lua 仮想機械(VM)の使用については、Flame サンプルよりも 3 年早い初期段階で利用されています。
名前の「fast16」は、NSA の『Territorial Dispute』コンポーネントを暴露した ShadowBrokers という著名なリークの文脈に登場します。回避用のシグネチャには、「fast16 *** Nothing to see here – carry on ***(fast16:ここでは見るべき何もないので、そのまま進め)」という指示が含まれていました。
概要
fast16 に関する調査は、あるレベルの頂点の脅威アクターが常に組み込みスクリプティングエンジンをモジュール性の手段として活用しているという建築的な仮説から始まりました。Flame、『動物農場』の Bunny、『PlexingEagle」、Flame 2.0、および Project Sauron のそれぞれは、組み込み Lua VM の拡張性とモジュール性をプラットフォームの基盤として構築しました。我々はこの開発スタイルが共通の源流から生まれたのかを特定したいと考え、Windows マalウェアにおける組み込み Lua エンジンの最も初期かつ洗練された利用をたどることに取り組みました。
Lua は軽量なスクリプティング言語であり、C/C++ 機能の拡張において本質的な能力を持っています。信頼性の高い高級マルウェアフレームワークとしての C++ の魅力に鑑みると、既に感染したマシンに機能を追加するために全体を再コンパイルする必要がないというこの能力は不可欠です。直接的な共有起源を示す兆候は見られませんが、我々の調査はこのモダンな攻撃アーキテクチャの最も古い事例を発見しました。
Lua は独自のフィンガープリントを残します。コンパイルされたバイトコードコンテナは、マジックバイト
1B 4C 75 61(\x1bLua)で始まり、バージョンバイトに続き、通常は特徴的な C API と LUA_PATH などの環境変数のような特性を公開しています。2000 年代半ばのマルウェアコレクション全体をこれらの特性で検索した結果、当初は地味に見えるサンプルである svcmgmt.exe が表面化しました。
svcmgmt.exe | 2005 年の Lua パワードサービスバイナリ
表面上、svcmgmt.exe は Windows 2000/XP 時代からの一般的なコンソールモードサービスラッパーのようですが、より詳しい検証では、組み込まれた Lua 5.0 仮想機械と、サービスエントリーポイントが解凍する暗号化されたバイトコードコンテナが存在することが明らかになりました。開発者は Lua 環境を拡張し、以下の機能を追加しました:
- ネイティブなユニコード処理のためのwstring モジュール
- 組み込みの対称鍵暗号化方式であり、通常
とラベル付けされる関数を通じて公開され、埋め込まれたデータの復号化に使用される機能b - Windows NT ファイルシステム、レジストリ、サービス制御、およびネットワーク API に直接バインドする複数のモジュール
それ自体でも svcmgmt.exe は、暗号化された Lua バイトコードに多くのロジックを委ねた初期の高級インプラント、すなわちモジュラーサービスのバイナリに見えます。このバイナリには重要な詳細が含まれており、それはバイナリをカーネルドライバ fast16.sys にリンクする PDB パスです。
fast16 | ShadowBrokers リークから残されたたしかなる謎
バイナリの文字列の深部に埋め込まれた PDB の参照には、以下のパスが含まれていました:
C:\buildy\driver\fd\i386\fast16.pdb
一見すると、これは他のコンパイラアティファクトと同様に構成されたパスのように見えます(内部ビルドディレクトリ、コンポーネント名 fast16、アーキテクチャのヒント i386)。しかしながら、このケースでは不一致があります。文字列はサービスモードの実行可能ファイルの中にあるにもかかわらず、PDB 文字列の
driver\fd\i386\fast16 セグメントが明らかにカーネルドライバプロジェクトを指しています。
その手がかりに従うことで、我々は第二のバイナリである fast16.sys に到達しました:
| プロパティ | 値 |
|---|---|
| Filename | fast16.sys |
| Filesize | 44,580 bytes |
| MD5 | 0ff6abe0252d4f37a196a1231fae5f26 |
| SHA256 | 07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529 |
| Type | MS Windows 5.00 (native) 用の PE32 エグzekutabel、Intel i386、5 セクション |
| Link Time | 2005-07-19 15:15:41 UTC (0x42dd191d) |
このカーネルドライバはブート起動時にロードされるファイルシステムコンポーネントであり、ディスクから読み込まれる実行可能コードを受け止め、変更します。この年代のドライバは Windows 7 以降では動作しませんが、その当時、fast16.sys はストレージスタックにおける位置、ファイルシステム I/O の制御、およびルールベースのコードパッチング機能によって、一般的なルートキットよりも格段に優れていたのです。
2017 年 4 月、コンパイルタイムスタンプからほぼ 12 年後、ShadowBrokers リークの中で同じファイル名「fast16」が登場しました。Boldizsár Bencsáth 博士は『Territorial Dispute』に関する研究を行い、テキストファイル drv_list.txt を指摘しています。この 250KB のファイルは、サイバーオペレーターが標的のボックスで遭遇する可能性のある潜在的なインプラントを「フレンドリー」としてマークしたり、競合する国のハッキング作戦との衝突を避けるために「引き上げる」ための短いドライバ名リストです。
特定のドライバ「fast16」に関するガイダンスは、両方の側面からユニークかつ特に珍しいものです。svcmgmt.exe 内の文字列はこの調査における重要なフォレンジックリンクを提供しました。PDB パスは、2017 年に NSA オペレーターで使用された脱コンフリクトシグネチャのリークと、2005 年にコンパイルされたマルチモーダル Lua パワード「キャリア」モジュールを結びつけ、最終的にはそのステルスなペイロードである精密妨害のためのカーネルドライバへと至ります。
svcmgmt.exe | キャリアのアーキテクチャ
fast16 のコアコンポーネントである svcmgmt.exe は、高度に適応的なキャリアモジュールとして機能し、コマンドライン引数に基づいて動作モードを変更します。
| 引数 | アクション |
|---|---|
| 引数なし | Windows サービスとして実行されます。 |
| -p | を設定し、サービスとして実行(伝播/インストールおよび実行)。 |
| -i | を設定し、Lua コードを実行(インストールして Lua を実行)。 |
| -r | インストールフラグを設定せずに Lua コードを実行(Lua を実行)。 |
| その他の引数 () | ファイル名として解釈され、元のコマンドと 引数を付与した子プロセスを生成します(ラッパー/プロキシモード)。 |
内部では、svcmgmt.exe は 3 つの異なるペイロードを保存しており、それらは設定、伝播および協調ロジック、補助的な ConnotifyDLL、ならびに fast16.sys カーネルドライバを含む暗号化された Lua バイトコードです。
キャリアペイロードの構成
比較的安定した実行ラッパーと、暗号化されたタスク固有のペイロードを分離することにより、開発者はキャンペーンを通じて外部キャリアバイナリにほとんど変更を加えずに、異なるターゲット環境と運用目標に適応できる再利用可能な区画化フレームワークを作成しました。
ワームレットと初期の回避アーキテクチャ
2000 年代初頭には多くのネットワークワームが存在していました。それらの多くは愛好家によって書かれており、速やかに広がり、意味のあるペイロードをほとんど運んでいませんでした。「fast16」も同様の時代から発祥していますが、ステートレベルのツールとしての源流を示す全く異なるパターンに従っています。これは記録されている最初の Lua ベースのネットワークワームであり、極めて具体的なミッションのために構築されました。
キャリアは、ソフトウェア形態の集束弾のように設計されており、内部では「wormlets」と呼ばれる複数のワーム可能なペイロードを搭載することができます。svcmgmt.exe モジュールは以下のステップを実行します:
- 設定を準備し、ペイロードパス、サービス詳細、ターゲット IP ランジを定義します。
- C レイヤーのための設定値をワイド文字列に変換します。
- 権限を昇格し、キャリア実行可能ファイルを SvcMgmt サービスとしてインストールして起動します。
- (オプションで)設定に基づいて、カーネルドライバインプラント fast16.sys を展開します。
- ワームレットを解放します。この特定の構成では、ネットワークサーバーを探し、ペイロードをネットワーク共有経由でコピーし、そのリモートサービスを起動する SCM ワームレットのみが一つのスロットに埋められています。
- このプロセスを無限に繰り返します。 Waves(波)間の設定された初期遅延の間、スリープしており、失敗閾値または外部のキル条件に達するまで続きます。
ワームレットはキャリアの内蔵ストレージに格納されていました:
- 内蔵ストレージの構造:svcmgmt.exe に発見された单个展開されたワームレット(SCM ワームレット)は、ネイティブの Windows 機能と弱いつながりに基づいた単純だが効果的な伝播戦略を示します。それは Windows 2000/XP 環境を標的とし、共有ファイル上のデフォルトまたは弱い管理パスワードに依存します。すべての拡散は標準の Windows サービス制御およびファイル共有 API を通じて行われ、カスタムのネットワークプロトコルよりも構築された管理機能に依存する早期の伝播の例です。
このワークフローが実行される前に、事前インストールキルスイッチが環境をチェックします。
ok_to_install() ルーティンは ok_to_propagate() を呼び出し、手動で強制的に行われた場合または一般的なセキュリティ製品が発見されないことを確認した場合(関連するレジストリキーをチェックすることによって)のみ伝播を許可します。このルーティンはベンダーキーのリストを巡回し、いずれかが存在する場合にインストールを中止することで、監視されている環境への展開を防ぎます。
この時代のツールにとって、そのようなレベルの環境意識は顕著です。製品のリストが包括的に見えるとは限りませんが、おそらくターゲットネットワークで存在すると期待され、その検出技術が秘密作戦のステルス性を脅かすだろう製品を反映している可能性があります:
HKLM\SOFTWARE\Symantec\InstalledAppsHKLM\SOFTWARE\Sygate Technologies, Inc.\Sygate Personal FirewallHKLM\SOFTWARE\TrendMicro\PFWHKLM\SOFTWARE\Zone Labs\TrueVectorHKLM\SOFTWARE\F-SecureHKLM\SOFTWARE\Network Ice\BlackIceHKLM\SOFTWARE\McAfee.com\Personal FirewallHKLM\SOFTWARE\ComputerAssociates\eTrust EZ ArmorHKLM\SOFTWARE\RedCannon\FireballHKLM\SOFTWARE\Kerio\Personal Firewall 4HKLM\SOFTWARE\KasperskyLab\InstalledProducts\Kaspersky Anti-HackerHKLM\SOFTWARE\Tiny Software\Tiny FirewallHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Look n Stop 2.05p2HKCU\SOFTWARE\Soft4EverHKLM\SOFTWARE\Norman Data Defense SystemsHKLM\SOFTWARE\Agnitum\Outpost FirewallHKLM\SOFTWARE\Panda Software\FirewallHKLM\SOFTWARE\InfoTeCS\TermiNET
独立したユーザーモードコンポーネントである svcmgmt.dll は、最小限のレポートチャネルを提供します。キャリアの内蔵ストレージに含まれるこの DLL は、Windows AddConnectNotify() API を通じて登録され、システムが 2000 年代のダイヤルアップ接続と早期の VPN を担当するリモートアクセssqlvice (RAS) を使用して新しいネットワーク接続を確立するたびに呼び出されます。
| プロパティ | 値 |
|---|---|
| Module Name | ユーザーモジュール (connotifydll) |
| Filename | svcmgmt.dll |
| Filesize | 45,056 bytes |
| MD5 | 410eddfc19de44249897986ecc8ac449 |
| SHA256 | 8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9 |
| Link Time | 2005-06-06 18:42:45 UTC |
| Type | PE32 DLL (i386, 4 セクション) |
呼び出された際、DLL はオブスクレーティングされた文字列を復号化してパイプ
\\.\pipe\p577 を取得し、ローカルパイプに接続を試み、リモートとローカルの接続名をパイプに書き込んでから閉じます。このモジュールは独立して動作せず、ホストプロセスによって登録される必要があります。
fast16.sys | 精密妨害のためのファイルシステムドライバ
カーネルドライバ fast16.sys はフレームワークの最も強力なコンポーネントです。 このドライバは SCSI クラスグループで
Start=0 (ブート) および Type=2 (ファイルシステムドライバ) で構成されています。これは初期段階で自動的にロードされ、ディスクデバイスドライバと共に、各ファイルシステムデバイス(NTFS、FAT、MRxSMB)の上に自分自身を挿入します。エントリー時には:
- Session Manager の PrefetchParameters キーの下で EnablePrefetcher 値を 0 に設定して Windows Prefetcher を無効化し、その後のコードページ要求をフルファイルシステムスタックを通じて強制します。
- ntoskrnl.exe をスキャンして単純な XOR ベースの文字列暗号を使用してカーネル API を動的に解決します。
- カスタム DeviceType 値
で0xA57C
および\Device\fast16
を公開し、これは二次的なフォレンジックマーカーとして機能します。\??\fast16
ドライバは IoRegisterFsRegistrationChange に登録され、アクティブおよび新規に作成されたすべてのファイルシステムデバイスの上にワーカーデバイスオブジェクトを取り付けることができます。IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_CLOSE、IRP_MJ_QUERY_INFORMATION、IRP_MJ_FILE_SYSTEM_CONTROL などの関連する I/O リクエストペケット、および関連するファスト I/O パスは、これらのワーカーデバイスを通じてルーティングされます。
ブート時にロードされても、カーネルレベルのコードインジェクションエンジンはそのシステムで explorer.exe が開かれた後にのみ有効になります。このデザインは、高価な監視とパッチングをデスクトップ環境が利用可能になるまで延期し、コアブートパフォーマンスへの不必要的影響を回避します。
インテルコンパイラアティファクトによる狭いターゲティング
有効化された後、fast16.sys は実行可能ファイルに焦点を当てます。ファイルは以下の 2 つの基準を満たす場合、正当な標的です:
- ファイル名は
で終わります。.EXE - 最後の PE セクションヘッダーの直後には、
で始まる可読な ASCII 文字列があります。Intel
この選択ロジックは、インテル C/C++ コンパイラでコンパイルされた実行可能ファイルを指しており、コンパイラメタデータをその領域に配置することがよくあります。それは開発者がターゲットソフトウェアがこのツールチェーンで構築されていることを知っていたことを示唆しています。
これらの基準を満たすファイルに対して、ドライバはメモリ内で PE ヘッダーの修飾を行います。
.xdata および .pdata の 2 つの追加セクションを注入し、元のコードセクションのバイトでそれらを埋め、セクション数を増加させながらコードのクリーンコピーを保持します。意図はおそらく安定性を向上させる一方で広範なパッチングを可能にすることでしたが、元のターゲットバイナリを特定せずに残っているのは情報に基づいた仮説です。
ルール駆動型のパッチングと浮動小数点の腐敗
パッチングエンジンは、パフォーマンスが最適化されたステートフルスキャンおよび修飾ツールである最小限のものにすぎません。101 のルールセットで構成されており、それぞれパターンマッチングおよび置換ロジックを含んでいます。パフォーマンスを維持するために、エンジンには:
- 256 バイトのディスパッチアレイを使用し、少数のユニークパターンの始点バイト値のみをフラグします。
- パターン内のワイルドカードを許可する単一のルールが同じコードの複数のコンパイラ最適化バリアントに一致できるようにしています。
- ステートフラグをサポートし、いくつかのルールが設定またはチェックできるようにし、高度なアンチウイルススキャンエンジンで使用されるような多段階の修飾シーケンスを可能にします。
パッチされた大部分のパターンは、実行フローをハイジャックまたは影響を与えるために使用される標準的な x86 コードに対応しています。注入されたブロックの一つが異なります。それは内部配列での精密算術およびスケール値に専念する、より大きく複雑な浮動小数点演算器 (FPU) 命令のシーケンスです。このコードはコードフローハイジャックや他の典型的な悪意あるコードインジェクションとは無関係のスタンドアロンの数学的計算関数です。
ドライバが何を見ていたかを理解するために、パッチングルールをヘキサルデキサデシマライズ YARA シグネチャに変換し、それらを大きな時代適合的なコーパスに対して実行しました。結果はヒット率が非常に低いことを示しました:2 つ以上のパターンに一致するファイルは 10 つ未満でした。しかしながら、これらの一致は明確なテーマを共有していました。それは土木工学、物理学、および物理プロセスシミュレーションなどの特殊分野の精密計算ツールでした。
fast16.sys の FPU パッチは、これらのルーチンを制御された方法で腐敗させるように書かれており、代替出力を生成します。これは fast16 を一般的なスパイウェアツールの世界から引き抜き、戦略的妨害のカテゴリーへと移動させます。物理世界の計算に系統的なエラーを導入することで、フレームワークは科学的研究プログラムを損傷または遅らせるか、工学システムを時間の経過とともに劣化させるか、あるいは甚大な被害に貢献することができました。
この種の妨害作戦は、別のシステム上で計算を検証することによって阻止されました。複数のシステムが同じネットワークおよびセキュリティ姿勢を共有する環境では、ワーム可能なキャリアはこれらのシステムにも悪意のあるドライバモジュールを展開し、独立した計算が腐敗された出力から逸脱する可能性を低減しました。 現時点で、我々は意図された妨害の性質を理解するためにすべてのターゲットバイナリを特定することができませんでした。我々はより大きな情報セキュリティ研究コミュニティからの貢献を歓迎し、これらのパターンを検出するための YARA ルールを以下の付録に含まれています。
データパッチングエンジン
深い分析の後でも、fast16 のドライバは欺瞞的に単純にしか見えません。その最小限のコードの下には、ファイルがディスクから読み込まれる際に静かに実行可能コードをパッチするルール駆動型のメモリ内エンジンがあります。このエンジンは、おそらく重要になる可能性が高いバイトのみを検査するように、緊密なパターンスマッチングルール(およそ 100 よりもわずかに多い)と小さいディスパッチテーブルに依存しています。大部分のパターンは通常の x86 命令に対応していますが、一つが際立っています:内部配列への値のスケールに専念するより大きい浮動小数点 (FPU) コードブロックです。この注入されたルーティンは関数に渡された 3 つの内部配列の値を微細に変化させます。
パッチターゲット
意図的な犠牲者に関する我々の最も良い手がかりは、これらのパターンを大きな時代の適合的なソフトウェアコーパスに対してマッチングすることによって得られます。最強的重なりは、2000 年代半ばの高度な精密工学およびシミュレーションスイートの 3 つに指します:LS-DYNA 970、PKPM、ならびに MOHID 水力学モデリングプラットフォーム。これらはすべてクラッシュテスト、構造的解析、および環境モデリングなどのシナリオに使用されます。
- LS-DYNA 特に、JCPOA セクション T のイランが疑われる違反についての公的なレポートで言及されています。核兵器開発に関連するコンピューターモデリングの研究で使用されました。
コンパイラフットプリントおよび系譜
我々がこの不寻常なコンポーネントセットの系統を理解しようとした際、いくつかの変形に気づきました。バイナリ内の
@(#)par.h $Revision: 1.3 $ のような文字列は不寻常なソース制御慣行を指しています。@(#) プレフィックスは、1970 および 1980 年代の初期 UNIX ソースコード制御システム (SCCS) または改修制御システム (RCS) ツールの特性です。これらのマーカーは実行に影響を与えず、現代の Windows カーネルドライバでは冗長です。
2000 年代半ばの Windows コードに SCCS/RCS アティファクトを見つけることは稀です。これは強く示唆しており、このフレームワークの著者らは典型的な Windows だけの開発者ではなかったということです。それ代わりに、彼らは古い、高セキュリティ Unix 環境、しばしば政府または軍隊グレードの工作与関連付けられた文化とツールチェーンを持つ長期的エンジニアリングだったように見えます。この詳細は、fast16 がリソースが多く、長期にわたる開発プログラムから来たという見方を支持します。
現代の影響を持つデジタル化石
svcmgmt.exe はほぼ 10 年前に VirusTotal にアップロードされました。それでもほとんど検出を受けません:一つのエンドはそれを一般的に悪意あるとして分類し、それ自体も限られた確信度を持っています。その時代の最も洗練された妨害ドライバの一つを展開するステルスな自己伝播キャリアにとって、その検出記録は顕著です。
ShadowBrokers『Territorial Dispute』(TeDi) シグネチャへの出現とともに、fast16 は深刻な秘密のサイバー妨害作戦の開発タイムラインに関する我々の歴史的理解を再評価するよう強制します。コードは以下のことを示しています:
- ステートグレードの物理ターゲットに対するサイバー妨害は 2000 年代半ばまでに完全に開発および展開されていました。
- 組み込みスクリプティングエンジン、狭いコンパイラベースターゲティング、カーネルレベルパッチングは、よりよく知られたファミリーよりもはるかに先行して一貫したアーキテクチャを形成していました。
- エコシステム内の最も重要な攻撃的機能のいくつかはまだ「古いけど興味深い」というサンプルとしてコレクションに残っている可能性があり、その真の重要性を強調する文脈が欠落しています。
内部では、操作はブランドの面でほとんど何も残しません。限られた人間の読めるラベルの一つはユーモラスで控えめです:
*** Nothing to see here – carry on ***
数年間は公的な記事なし、キャンペーン名なし、そしてこのフレームワークに関連する头条ニュース事象なしでした。
APT 進化のより広い図において、fast16 は初期に主に無視された開発プログラムと後期、より広く文書化された Lua および LuaJIT ベースのツールキットの間を埋める架橋となります。それは高度なアクターが長期インプラント、妨害、ならびに国家がソフトウェアを通じて物理世界を再構築する能力についてどのように考えるかを理解するための参考点です。fast16 は今日の秘密性の成功まで新しい形の国家術の沈黙の予言者でした。
謝辞
SentinelLABS は、この道のりを通じて貢献した Silas Cutler および Costin Raiu に感謝いたします。我々はこの研究を、多くのこの発見を可能にした技術を開発した APT ハンター extraordinaire な Sergey Mineev の記憶に捧げます。
付録:パッチングエンジンパターンとターゲット候補
抽出されたマッチパターン
48 89 84 24 9C 00 00 00 4B 0F 8F 79 FF FF FF 00D8 E1 D9 5D FC D9 04 0055 8B EC 83 EC 14 53 56 57 8B 3D ?? ?? ?? ?? 8B 0D 0089 4D C8 8B FB 8B C8 008B 4C 24 0C 8B 01 83 F8 63 0039 2D ?? ?? ?? ?? 0F 84 F4 00 00 00 8B 35 ?? ?? ?? ?? 2B 357C 02 89 C6 89 35 ?? ?? ?? ?? 89 B4 24 D083 3D ?? ?? ?? ?? 00 0F 84 70 BD FF FF 00BE 07 00 00 00 BF 04 00 00 00 BB 02 00 00 00 008B 4D 10 C1 E2 04 8B 19 83 EA 30 8B CB 498D 1D ?? ?? ?? ?? 52 8D 05 ?? ?? ?? ?? 51 8D 15 ?? ?? ?? ?? 8D 0D ?? ?? ?? ?? 53 50 52 51 56 57 E8 ?? ?? ?? ?? 83 C4 38 EB 0E 83 EC 04 000F 8F A5 00 00 00 A1 ?? ?? ?? ?? 83 F8 14 7D 0D8B 5D B0 0F 85 ?? ?? ?? ?? 8D 34 9D ?? ?? ?? ?? 8D 14 9D 00 0F 8E 1B 03 00 00 D9 058B 45 44 6B 00 04 D9 05 ?? ?? ?? ?? D8 B0E9 7E 04 00 00 8B 74 24 1C 8B 54 24 14 8583 39 63 0F 85 21 03 00 00 8B EE 85 F6 0F85 DB 8B 55 D4 75 2C 89 35 0075 18 8D 35 ?? ?? ?? ?? 56 8D 3D 008D 1D ?? ?? ?? ?? 52 8D 05 ?? ?? ?? ?? 51 8D 15 ?? ?? ?? ?? 8D 0D ?? ?? ?? ?? 53 50 52 51 56 57 E8 ?? ?? ?? ?? EB 0E 83 EC 04 56 57 53 E8 95 00D8 34 85 ?? ?? ?? ?? 8B 44 ?? ?? 8B CA 008B 5D 0C 8B 55 08 8B 36 8B 008D 04 BD ?? ?? ?? ?? 03 DF 008B EE 85 F6 0F 8E ?? ?? ?? ?? 8D 1C BD 00D9 04 9D ?? ?? ?? ?? 83 ED 04 05 10 00 00 00 D8 0D 0075 2C 89 35 ?? ?? ?? ?? 89 05 ?? ?? ?? ?? 89 1589 55 F4 8B F9 8B D3 03 FB C1 E2 02 89 3540 23 72 65 63 24 65 69 69 6E 20 2E 30 24 D9 5D 00 D9 03 D8 0D ?? ?? ?? ?? D8 0D 00DF E0 F6 C4 41 A1 ?? ?? ?? ?? 74 5AFF 35 ?? ?? ?? ?? E8 ?? ?? ?? ?? 9D D9 E0 D9 1D ?? ?? ?? ?? 8B 4C6A 46 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 6A 03D8 05 ?? ?? ?? ?? D9 55 00 9CC2 08 00 A1 ?? ?? ?? ?? 8B 0C 85 ?? ?? ?? ?? 89 0E 0083 EC 04 53 E8 ?? ?? ?? ?? EB 09 83 EC 04 53 00D8 1D ?? ?? ?? ?? DF E0 F6 C4 41 B8 00 00 00 00 75 05 B8 01 00 00 00 85 C0 74 11 6A 29 002B DA 89 3C 03 83 3D 00D9 5D C0 8B 4D C0 D9 45 E0 89 0E 008B 05 ?? ?? ?? ?? 8B 0D ?? ?? ?? ?? 0F 85 7E 00 00 00 0F AF 15 00B9 01 00 00 00 C1 E7 02 8B BF ?? ?? ?? ?? 8B D7 85 FF 8B 55 30 8B 45 30 D8 C9 8B 75 2C 00 9A 8B 00 00 00 1B 00 90 0F 94 C3 0B D8 33 D2 83 3D 002B FB 8B DE C1 E3 02 89 7D A0 03 5D A0 8B 03 F7 F7 DB 0C 02 89 350F 0F 94 C0 23 C3 33 D28B 55 30 8B 75 2C D8 C9 8B 45 30 00DD 05 ?? ?? ?? ?? 8B 05 ?? ?? ?? ?? 8B 15 ?? ?? ?? ?? 0F AF 05 ?? ?? ?? ?? 8B 1D ?? ?? ?? ?? 0F AF 1568 28 00 00 00 57 E8 ?? ?? ?? ?? 8B 1D ?? ?? ?? ?? 8B 35 ?? ?? ?? ?? 0F AF 1D ?? ?? ?? ?? 8B 3D ?? ?? ?? ?? 8B 058B 75 38 8B 4D 34 D8 C9 8B 008B 55 88 8B 5D B0 83 7D 84 0155 8B EC 83 EC 2C 33 D2 53 56 57 8B55 8B EC 83 EC 2C B9 46 00 00 00 53 56 57 8B 00
パッチターゲット候補 1: LS-DYNA 970 ソフトウェアスイート
LS-DYNA スイートは、極端な条件下で物質および構造がどのように振る舞うかを解析するために使用される強力な工学シミュレーションソフトウェアです。このツールは、高価または危険な実験を回避しながら物理イベントを模擬し条件をモデル化するエンジニアによって使用されます。 LS-DYNA は、速度で発生する動的かつ複雑な出来事(自動車事故、爆発、衝撃、金属成形、および製造プロセスなど)を処理するように設計されています。それは自動車の会社、航空宇宙工学、防衛および軍事研究、ならびに製造および材料科学アプリケーションによって一般的に使用されました。LS-DYNA は 1976 年から開発されてきました。
| プロパティ | 値 |
|---|---|
| MD5 | 1d2f32c57ae2f2013f513d342925e972 |
| SHA1 | 2fa28ef1c6744bdc2021abd4048eefc777dccf22 |
| SHA256 | 5966513a12a5601b262c4ee4d3e32091feb05b666951d06431c30a8cece83010 |
| File Size | 5,225,591 bytes |
| Link time | 2003-10-24 16:34:57 UTC |
| File Type | MS Windows 4.00 (console) 用の PE32 エグzekutabel、Intel i386、7 セクション |
パッチターゲット候補 2: PKPM ソフトウェアスイート
実践的な構造設計および施工ソフトウェア(PKPM)は、中国でのビルデザインで広く使用される構造化工学 CAD ソフトウェアスイートです。このスイートは、梁および柱の構造的レイアウトおよび鉄筋せん断設計から高層ビルの地震、風、負荷分析までを含む構造物建築デザインの完全ライフサイクルをカバーする複数の実行可能モジュールを包括しています。 PKPM のコア分析エンジン(3 次元ワイヤドエレメントの空間解析:SATWE)は、床、梁、柱、壁、および枠組みにわたる 3 次元構造的処理を処理します。PKPM は中国の土木工学で広範に使用されています。
PKPM コンクリートコードせん断設計モジュール
| プロパティ | 値 |
|---|---|
| MD5 | af4461a149bfd2ba566f2abefe7dcde4 |
| SHA1 | 586edef41c3b3fba87bf0f0346c7e402f86fc11e |
| SHA256 | 09ca719e06a526f70aadf34fb66b136ed20f923776e6b33a33a9059ef674da22 |
| File Size | 7,716,864 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、6 セクション |
| Link Time | 2011-08-26 10:58:17 UTC |
PKPM ビルド構造 CAD モジュール
| プロパティ | 値 |
|---|---|
| MD5 | 49a8934ccd34e2aaae6ea1e6a6313ffe |
| SHA1 | 3ce5b358c2ddd116ac9582efbb38354809999cb5 |
| SHA256 | 8b018452fdd64c346af4d97da420681e2e0b55b8c9ce2b8de75e330993b759a0 |
| File Size | 11,849,728 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、4 セクション |
| Link Time | 2005-12-01 08:35:46 UTC |
PKPM SATWE 構造的解析エンジン
| プロパティ | 値 |
|---|---|
| MD5 | 2717b58246237b35d44ef2e49712d3a2 |
| SHA1 | d475ace24b9aedebf431efc68f9db32d5ae761bd |
| SHA256 | bd04715c5c43c862c38a4ad6c2167ad082a352881e04a35117af9bbfad8e5613 |
| File Size | 9,908,224 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、6 セクション |
| Link Time | 2011-01-12 06:37:39 UTC |
###追加 PKPM CAD ファイル
| プロパティ | 値 |
|---|---|
| MD5 | daea40562458fc7ae1adb812137d3d05 |
| SHA1 | 1ce1111702b765f5c4d09315ff1f0d914f7e5c70 |
| SHA256 | da2b170994031477091be89c8835ff9db1a5304f3f2f25344654f44d0430ced1 |
| File Size | 8,454,144 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、7 セクション |
| Link Time | 2012-11-29 03:10:12 UTC |
| プロパティ | 値 |
|---|---|
| MD5 | e0c10106626711f287ff91c0d6314407 |
| SHA1 | 650fc6b3e4f62ecdc1ec5728f36bb46ba0f74d05 |
| SHA256 | 06361562cc53d759fb5a4c2b7aac348e4d23fe59be3b2871b14678365283ca47 |
| File Size | 16,355,328 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、5 セクション |
| Link Time | 2012-07-07 08:47:11 UTC |
| プロパティ | 値 |
|---|---|
| MD5 | 2740a703859cbd8b43425d4a2cacb5ec |
| SHA1 | ca665b59bc590292f94c23e04fa458f90d7b20c9 |
| SHA256 | aeaa389453f04a9e79ff6c8b7b66db7b65d4aaffc6cac0bd7957257a30468e33 |
| File Size | 16,568,320 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、5 セクション |
| Link Time | 2014-12-30 03:23:43 UTC |
| プロパティ | 値 |
|---|---|
| MD5 | ebff5b7d4c5becb8715009df596c5a91 |
| SHA1 | 829f8be65dfe159d2b0dc7ee7a61a017acb54b7b |
| SHA256 | 37414d9ca87a132ec5081f3e7590d04498237746f9a7479c6b443accee17a062 |
| File Size | 8,089,600 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、6 セクション |
| Link Time | 2009-04-22 01:46:46 UTC |
| プロパティ | 値 |
|---|---|
| MD5 | cb66a4d52a30bfcd980fe50e7e3f73f0 |
| SHA1 | e6018cd482c012de8b69c64dc3165337bc121b86 |
| SHA256 | 66fe485f29a6405265756aaf7f822b9ceb56e108afabd414ee222ee9657dd7e2 |
| File Size | 9,219,072 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、8 セクション |
| Link Time | N/A |
###追加 PKPM CAD ファイル
| プロパティ | 値 |
|---|---|
| MD5 | 075b4aa105e728f2b659723e3f36c72c |
| SHA1 | 145ef372c3e9c352eaaa53bb0893749163e49892 |
| SHA256 | c11a210cb98095422d0d33cbd4e9ecc86b95024f956ede812e17c97e79591cfa |
| File Size | 6,852,608 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、6 セクション |
| Link Time | 2012-06-18 10:01:54 UTC |
| プロパティ | 値 |
|---|---|
| MD5 | cf859f164870d113608a843e4a9600ab |
| SHA1 | 952ed694b60c34ba12df9d392269eae3a4f11be4 |
| SHA256 | 7e00030a35504de5c0d16020aa40cbaf5d36561e0716feb8f73235579a7b0909 |
| File Size | 8,392,704 bytes |
| File Type | MS Windows 4.00 (GUI) 用の PE32 エグzekutabel、Intel i386、6 セクション |
| Link Time | 2012-11-29 03:10:12 UTC |
候補 3: MOHID ソフトウェアスイート
Modelo Hidrodinâmico(ポルトガル語の「水力学モデル」または MOHID)は、ポートガルのリサボンにあるインスチチュートスーペリオールテクニックの MARETEC(海洋および環境テクノロジー研究センター)によって開発されたオープンソースの水モデリングシステムです。このソフトウェアは海洋および沿岸水のモデリングに使用され、水力学、水質シミュレーション、堆積物輸送、石油流出モデリング、およびラグランジュ粒子追跡をカバーしています。 現時点で我々はターゲットを確実には識別することはできず、より広い研究コミュニティからの貢献を歓迎して、このソフトウェアに対する攻撃の意図された効果の理解を支援します。
| プロパティ | 値 |
|---|---|
| MD5 | f4dbbb78979c1ee8a1523c77065e18a5 |
| SHA1 | 9e089a733fb2740c0e408b2a25d8f5a451584cf6 |
| SHA256 | e775049d1ecf68dee870f1a5c36b2f3542d1182782eb497b8ccfd2309c400b3a |
| File Size | 5,443,584 bytes |
| File Type | MS Windows 4.00 (console) 用の PE32 エグzekutabel、Intel i386、3 セクション |
| Link Time | 2002-10-18 09:29:54 UTC |
インジケーターオブコンプロマイズ
| Name | MD5 | SHA1 | SHA256 |
|---|---|---|---|
| fast16.sys | 0ff6abe0252d4f37a196a1231fae5f26 | 92e9dcaf7249110047ef121b7586c81d4b8cb4e5 | 07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529 |
| connotify.dll | 410eddfc19de44249897986ecc8ac449 | 675cb83cec5f25ebbe8d9f90dea3d836fcb1c234 | 8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9 |
| svcmgmt.exe | dbe51eabebf9d4ef9581ef99844a2944 | de584703c78a60a56028f9834086facd1401b355 | 9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525 |
YARA ルール
import "pe" rule apt_fast16_carrier { meta: author = "SentinelLABS/vk" date = "2025-04-07" description = "Catches fast16 carrier, its Lua payload, and plaintext variants" hash = "9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525" strings: $lua_magic = { 1B 4C 75 61 } //Lua bytecode magic //Decrypted strings $s1 = "build_wormlet_table" $s2 = "unpropagate" $s3 = "worm_install_failure_action" $s4 = "implant_install_failure_action" $s5 = "scm_wormlet_propagate_system" $s6 = "scm_wormlet_install" $s7 = "scm_wormlet_init" $s8 = "scm_copy_payload" $s9 = "get_logged_on_user" $s10 = "logged_on_program" $s11 = "phase_1_prop_delay" $s12 = "connotify_pipename" $s13 = "cndll_internal_name" $s14 = "connotify_provider_key" $s15 = "check_implant_reg_values" $s16 = "set_implant_reg_values" $s17 = "install_implant" $s18 = "implant_installed" $s19 = "implant_internal_name" $s20 = "implant_files" $s21 = "implant_owner" $s22 = "install_worm" $s23 = "start_worm" $s24 = "implant_install_failure_action" $s25 = "worm_install_failure_action" $s26 = "ok_to_propagate" $s27 = "no_firewall_check" $s28 = "scm_wormlet" $s29 = "implant_install_failure_action" $s30 = "worm_install_failure_action" //Encrypted strings $e1 = { 98 18 A1 94 24 E3 A2 4C 61 C8 AE 04 DC 4E 03 CD 0D 9D F0 } $e2 = { E8 76 53 6D D4 B9 6E 28 6C 5D C2 } $e3 = { 7D B7 14 73 F0 C0 4D 53 BB F7 0A 4A 3A 63 05 92 EC 0A 11 BC 22 59 99 05 72 05 19 } $e4 = { 88 5F 1B E4 45 56 75 4B A5 3D 19 0B 3F 30 5A 85 E2 BD D0 E7 1C 13 D0 1D BD D8 CF A1 88 DB } $e5 = { 88 1E 54 4E 00 C1 EF 79 AA AD 9F 50 27 B5 B8 4C 32 06 D2 7B 32 E3 AF D6 DC D2 BB 83 } $e6 = { 39 F9 BC E9 27 70 C4 3E 04 2A 7D E1 68 67 B7 ED D4 41 6A } $e7 = { 13 FC 24 20 1F 20 74 1B E5 5F 59 56 D7 61 3E BD } $e8 = { EF 94 49 63 33 41 62 F2 26 A6 48 DE 6D 7B A4 CF } $e9 = { 36 5F 5E E5 C1 1A 17 6A 4E B9 94 52 1B DC C6 60 CA C7 } $e10 = { B3 9C A3 F1 12 CC 52 74 34 5F 87 43 32 21 36 7B 2A } $rk1 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Symantec\\InstalledApps" $rk2 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Sygate Technologies, Inc.\\Sygate Personal Firewall" $rk3 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\TrendMicro\\PFW" $rk4 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Zone Labs\\TrueVector" $rk5 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\F-Secure" $rk6 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Network Ice\\BlackIce" $rk7 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\McAfee.com\\Personal Firewall" $rk8 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\ComputerAssociates\\eTrust EZ Armor" $rk9 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\RedCannon\\Fireball" $rk10 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Kerio\\Personal Firewall 4" $rk11 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\KasperskyLab\\InstalledProducts\\Kaspersky Anti-Hacker" $rk12 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Tiny Software\\Tiny Firewall" $rk13 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Look n Stop 2.05p2" $rk14 = "HKEY_CURRENT_USER\\SOFTWARE\\Soft4Ever" $rk15 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Norman Data Defense Systems" $rk16 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Agnitum\\Outpost Firewall" $rk17 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Panda Software\\Firewall" $rk18 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\InfoTeCS\\TermiNET" $c1 = { 86 3A D6 02 } // A crypto constant $c2 = { 01 E1 F5 05 } // A crypto constant $code1 = { 8B 00 // mov eax, [eax] 2D 2F 34 21 33 // sub eax, 3321342Fh } // Code to deobfuscate real storage container length $stor1 = { CC 00 00 00 05 00 00 00 66 69 6C 65 00 CD 00 00 00 } //Storage record with file string condition: ( uint16(0)==0x5a4d and filesize < 10MB and ( ( 3 of ($s*) ) or ( 12 of ($rk*) ) or ( any of ($e*) ) or ( all of ($c*) and @c2-@c1 < 0x100 ) or ( $code1 ) or ( $stor1 )) ) or ( $lua_magic and 7 of ($s*) ) } rule apt_fast16_driver { meta: author = "SentinelLABS/vk" last_modified = "2026-04-15" description = "Catches fast16 driver or related project files" hash = "07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529" strings: $a1 = "@(#)foo.c : " $a2 = "@(#)par.h : " $a3 = "@(#)pae.h : " $a4 = "@(#)fao.h : " $a5 = "@(#)uis.h : " $a6 = "@(#)ree.h : " $a7 = "@(#)fir.h : " $a8 = "@(#)fir.c : " $a9 = "@(#)par.h : " $a10 = "@(#)pae.h : " $a11 = "@(#)fao.h : " $a12 = "@(#)uis.h : " $a13 = "@(#)ree.h : " $a14 = "@(#)fir.h : " $a15 = "@(#)myy.h : " $a16 = "@(#)fic.h : " $a17 = "@(#)ree.h : " $a18 = "@(#)ree.c : " $dev1 = "\\Device\\fast16" $dev2 = "\\??\\fast16" $pdb1 = "C:\\buildy\\" $pdb2 = "driver\\fd\\i386\\fast16.pdb" $devtype = { 68 7C A5 00 00 } // push 0A57Ch ; DeviceType $api1 = {50 C6 45 D4 16 C6 45 D5 2B C6 45 D6 12 C6 45 D7 3F C6 45 D8 3F C6 45 D9 3C C6 45 DA 30 C6 45 DB 32 C6 45 DC 27 C6 45 DD 36 C6 45 DE 03 C6 45 DF 3C C6 45 E0 3C C6 45 E1 3F C6 45 E2 53 } // push xored "ExAllocatePool" $api2 = {C6 45 A8 16 C6 45 A9 2B C6 45 AA 12 C6 45 AB 3F C6 45 AC 3F C6 45 AD 3C C6 45 AE 30 C6 45 AF 32 C6 45 B0 27 C6 45 B1 36 C6 45 B2 03 C6 45 B3 3C C6 45 B4 3C C6 45 B5 3F C6 45 B6 04 C6 45 B7 3A C6 45 B8 27 C6 45 B9 3B C6 45 BA 07 C6 45 BB 32 C6 45 BC 34 C6 45 BD 53} // push xored "ExAllocatePoolWithTag" $api3 = {C6 45 E4 16 C6 45 E5 2B C6 45 E6 15 C6 45 E7 21 C6 45 E8 36 C6 45 E9 36 C6 45 EA 03 C6 45 EB 3C C6 45 EC 3C C6 45 ED 3F C6 45 EE 53} // push xored "ExFreePool" $api4 = {C6 45 C0 16 C6 45 C1 2B C6 45 C2 15 C6 45 C3 21 C6 45 C4 36 C6 45 C5 36 C6 45 C6 03 C6 45 C7 3C C6 45 C8 3C C6 45 C9 3F C6 45 CA 04 C6 45 CB 3A C6 45 CC 27 C6 45 CD 3B C6 45 CE 07 C6 45 CF 32 C6 45 D0 34 C6 45 D1 53} // push xored "ExFreePoolWithTag" condition: filesize < 10MB and ( uint16(0)==0x5a4d and ( ( 2 of ($pdb*) ) or ( $pdb1 and 1 of ($a*) ) or ( #devtype == 3 and pe.machine == pe.MACHINE_I386 and pe.subsystem == pe.SUBSYSTEM_NATIVE) or any of ($api*) or 2 of ($dev*))) or ( 6 of ($a*)) } rule clean_fast16_patchtarget { meta: author = "SentinelLABS/vk" last_modified = "2026-04-15" description = "Detects fast16 patch target software (most probably clean)" hash = "8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9" strings: $el0 = { 48 89 84 24 9C 00 00 00 4B 0F 8F 79 FF FF FF 00 } $el10 = { D8 E1 D9 5D FC D9 04 00 } $el12 = { 55 8B EC 83 EC 14 53 56 57 8B 3D ?? ?? ?? ?? 8B 0D 00 } $el13 = { 89 4D C8 8B FB 8B C8 00 } $el14 = { 8B 4C 24 0C 8B 01 83 F8 63 00 } $el16 = { 39 2D ?? ?? ?? ?? 0F 84 F4 00 00 00 8B 35 ?? ?? ?? ?? 2B 35 } $el2 = { 7C 02 89 C6 89 35 ?? ?? ?? ?? 89 B4 24 D0 } $el23 = { 83 3D ?? ?? ?? ?? 00 0F 84 70 BD FF FF 00 } $el25 = { BE 07 00 00 00 BF 04 00 00 00 BB 02 00 00 00 00 } $el26 = { 8B 4D 10 C1 E2 04 8B 19 83 EA 30 8B CB 49 } $el28 = { 8D 1D ?? ?? ?? ?? 52 8D 05 ?? ?? ?? ?? 51 8D 15 ?? ?? ?? ?? 8D 0D ?? ?? ?? ?? 53 50 52 51 56 57 E8 ?? ?? ?? ?? 83 C4 38 EB 0E 83 EC 04 00 } $el3 = { 0F 8F A5 00 00 00 A1 ?? ?? ?? ?? 83 F8 14 7D 0D } $el30 = { 8B 5D B0 0F 85 ?? ?? ?? ?? 8D 34 9D ?? ?? ?? ?? 8D 14 9D 00 0F 8E 1B 03 00 00 D9 05 } $el31 = { 8B 45 44 6B 00 04 D9 05 ?? ?? ?? ?? D8 B0 } $el32 = { E9 7E 04 00 00 8B 74 24 1C 8B 54 24 14 85 } $el33 = { 83 39 63 0F 85 21 03 00 00 8B EE 85 F6 0F } $el34 = { 85 DB 8B 55 D4 75 2C 89 35 00 } $el36 = { 75 18 8D 35 ?? ?? ?? ?? 56 8D 3D 00 } $el37 = { 8D 1D ?? ?? ?? ?? 52 8D 05 ?? ?? ?? ?? 51 8D 15 ?? ?? ?? ?? 8D 0D ?? ?? ?? ?? 53 50 52 51 56 57 E8 ?? ?? ?? ?? EB 0E 83 EC 04 56 57 53 E8 95 00 } $el39 = { D8 34 85 ?? ?? ?? ?? 8B 44 ?? ?? 8B CA 00 } $el4 = { 8B 5D 0C 8B 55 08 8B 36 8B 00 } $el40 = { 8D 04 BD ?? ?? ?? ?? 03 DF 00 } $el41 = { 8B EE 85 F6 0F 8E ?? ?? ?? ?? 8D 1C BD 00 } $el42 = { D9 04 9D ?? ?? ?? ?? 83 ED 04 05 10 00 00 00 D8 0D 00 } $el43 = { 75 2C 89 35 ?? ?? ?? ?? 89 05 ?? ?? ?? ?? 89 15 } $el45 = { 89 55 F4 8B F9 8B D3 03 FB C1 E2 02 89 35 } $el46 = { 40 23 72 65 63 24 65 69 69 6E 20 2E 30 24 D9 5D 00 D9 03 D8 0D ?? ?? ?? ?? D8 0D 00 } $el49 = { DF E0 F6 C4 41 A1 ?? ?? ?? ?? 74 5A } $el51 = { FF 35 ?? ?? ?? ?? E8 ?? ?? ?? ?? 9D D9 E0 D9 1D ?? ?? ?? ?? 8B 4C } $el53 = { 6A 46 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 6A 03 } $el56 = { D8 05 ?? ?? ?? ?? D9 55 00 9C } $el59 = { C2 08 00 A1 ?? ?? ?? ?? 8B 0C 85 ?? ?? ?? ?? 89 0E 00 } $el6 = { 83 EC 04 53 E8 ?? ?? ?? ?? EB 09 83 EC 04 53 00 } $el61 = { D8 1D ?? ?? ?? ?? DF E0 F6 C4 41 B8 00 00 00 00 75 05 B8 01 00 00 00 85 C0 74 11 6A 29 00 } $el63 = { 2B DA 89 3C 03 83 3D 00 } $el68 = { D9 5D C0 8B 4D C0 D9 45 E0 89 0E 00 } $el70 = { 8B 05 ?? ?? ?? ?? 8B 0D ?? ?? ?? ?? 0F 85 7E 00 00 00 0F AF 15 00 } $el73 = { B9 01 00 00 00 C1 E7 02 8B BF ?? ?? ?? ?? 8B D7 85 FF 8B 55 30 8B 45 30 D8 C9 8B 75 2C 00 9A 8B 00 00 00 1B 00 90 0F 94 C3 0B D8 33 D2 83 3D 00 } $el75 = { 2B FB 8B DE C1 E3 02 89 7D A0 03 5D A0 8B 03 F7 F7 DB 0C 02 89 35 } $el80 = { 0F 0F 94 C0 23 C3 33 D2 } $el81 = { 8B 55 30 8B 75 2C D8 C9 8B 45 30 00 } $el83 = { DD 05 ?? ?? ?? ?? 8B 05 ?? ?? ?? ?? 8B 15 ?? ?? ?? ?? 0F AF 05 ?? ?? ?? ?? 8B 1D ?? ?? ?? ?? 0F AF 15 } $el89 = { 68 28 00 00 00 57 E8 ?? ?? ?? ?? 8B 1D ?? ?? ?? ?? 8B 35 ?? ?? ?? ?? 0F AF 1D ?? ?? ?? ?? 8B 3D ?? ?? ?? ?? 8B 05 } $el94 = { 8B 75 38 8B 4D 34 D8 C9 8B 00 } $el96 = { 8B 55 88 8B 5D B0 83 7D 84 01 } $el97 = { 55 8B EC 83 EC 2C 33 D2 53 56 57 8B } $el99 = { 55 8B EC 83 EC 2C B9 46 00 00 00 53 56 57 8B 00 } condition: filesize < 20MB and uint16(0) == 0x5A4D and 2 of them } rule apt_fast16_patch { meta: author = "SentinelLABS/vk" last_modified = "2026-04-15" description = "Detects the fast16 patch code. May be present in statically patched files or memory dumps." hash = "0ff6abe0252d4f37a196a1231fae5f26" strings: $p1 = { 55 88 50 53 52 51 8D 64 24 94 DD 34 24 51 E8 ?? ?? ?? ?? 59 81 E9 14 00 00 00 8B 99 50 0F 00 00 83 FB 28 76 04 6A 31 } $p2 = { 59 81 E9 EE 00 00 00 6A 02 BB B4 05 00 00 01 CB C6 03 EB 43 C6 03 15 8B 44 24 78 83 C0 07 89 81 EC 07 00 00 E9 BF 02 00 00 } $p3 = { 50 53 52 51 E8 ?? ?? ?? ?? 59 81 E9 78 01 00 00 D9 99 C4 0F 00 00 8D 64 24 94 DD 34 24 FF B1 C4 0F 00 00 6A 02 EB 2D } condition: any of them }