
أدوات C# لمنشأة إشعارات Windows
هذا هو المستودع الخاص بأدوات مرفق إعلام Windows (WNF). حاليًا، تم رفع نسخة مُنقولة بلغة C# من الأدوات الموجودة في wnfun والتي طورها Alex Ionescu (@aionescu) و Gabrielle Viala (@pwissenlit). عندما أطوّر أدوات إضافية لمرفق إعلام Windows، سيتم رفعها هنا.
تقوم هذه الأداة بتفريغ أو معالجة المعلومات حول أسماء حالات WNF. تكافئ wnfdump.exe و WnfDump.py. لقد أجريت بعض التحديثات على الأداة الأصلية (معالجة الاستثناءات، وأسماء الحالات المعروفة، وعضو WNF_DATA_SCOPE الجديد).
لاسترجاع معلومات جميع أسماء حالات WNF المعروفة والدائمة والمستمرة على جهازك، نفّذ باستخدام علامة -d (--dump):```
PS C:\Dev> .\SharpWnfDump.exe -d
| WNF_WEBA_CTAP_DEVICE_STATE | S | W | N | RW | I | 0 | 12 | 0 | | WNF_WEBA_CTAP_DEVICE_CHANGE_NOTIFY | S | W | N | RW | I | 0 | 4 | 0 | | WNF_PNPA_DEVNODES_CHANGED | S | W | N | RO | U | 0 | 0 | 11 |
--snip--
لعرض اسم الحالة المستخدم فقط في النظام، اضبط علامة `-u` (`--used`).
يمكن تطبيق هذه العلامة على الخيارين `-d` و `-b`:```
PS C:\Dev> .\SharpWnfDump.exe -d -u
| WNF State Name [WellKnown Lifetime] | S | L | P | AC | N | CurSize | MaxSize | Changes |
----------------------------------------------------------------------------------------------------------------------
| WNF_PNPA_DEVNODES_CHANGED | S | W | N | RO | U | 0 | 0 | 140 |
| WNF_AUDC_RENDER | S | W | N | RO | U | 4096 | 4096 | 7 |
| WNF_AUDC_CAPTURE | S | W | N | RO | U | 4096 | 4096 | 1 |
| WNF_AUDC_SPATIAL_STATUS | S | W | N | RO | U | 4096 | 4096 | 3 |
--snip--
إذا كنت تريد استرجاع معلومات واصف الأمان، اضبط العلم -s (--sid):```
PS C:\Dev> .\SharpWnfDump.exe -d -s
| WNF_WEBA_CTAP_DEVICE_STATE | S | W | N | RW | I | 0 | 12 | 0 |
D:(A;;CCDC;;;SY)(A;;CCDC;;;BA)(A;;CCDC;;;S-1-5-80-242729624-280608522-2219052887-3187409060-2225943459)(A;;CC;;;AU)(A;;CC;;;AC)
| WNF_WEBA_CTAP_DEVICE_CHANGE_NOTIFY | S | W | N | RW | I | 0 | 4 | 0 |
D:(A;;CCDC;;;SY)(A;;CCDC;;;BA)(A;;CCDC;;;S-1-5-80-242729624-280608522-2219052887-3187409060-2225943459)(A;;CC;;;AU)(A;;CC;;;AC)
| WNF_PNPA_DEVNODES_CHANGED | S | W | N | RO | U | 0 | 0 | 11 |
D:(A;;CC;;;BU)(A;;CCDC;;;SY)
--snip--
إذا كنت تريد استرداد بيانات المخزن المؤقت، فعيّن علامة `-v` (`--value`) أو `-r` (`--read`).
يمكن استخدام هذه العلامات مع علامة `-s`:```
PS C:\Dev> .\SharpWnfDump.exe -d -v
| WNF State Name [WellKnown Lifetime] | S | L | P | AC | N | CurSize | MaxSize | Changes |
----------------------------------------------------------------------------------------------------------------------
| WNF_WEBA_CTAP_DEVICE_STATE | S | W | N | RW | I | 0 | 12 | 0 |
| WNF_WEBA_CTAP_DEVICE_CHANGE_NOTIFY | S | W | N | RW | I | 0 | 4 | 0 |
--snip--
| WNF_AUDC_RENDER | S | W | N | RO | U | 4096 | 4096 | 1 |
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 | 01 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 | ........ ........
00000010 | 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 | ........ ........
00000020 | 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 | ........ ........
--snip--
لاسترجاع معلومات جميع أسماء حالات WNF المؤقتة على جهازك، نفّذ مع العلم -b (--brut):```
PS C:\Dev> .\SharpWnfDump.exe -b
| 0x41C64E6DA3AC3845 | S | T | N | RW | A | 8 | ? | 1 | | 0x41C64E6DA3AC4845 | S | T | N | RW | A | 8 | ? | 1 | | 0x41C64E6DA3AC6845 | S | T | N | RW | A | 8 | ? | 1 |
--snip--
يمكن استخدام علامة `-b` (`--brut`) مع علامة `-v` (`--value`) أو `-r` (`--read`)، ولكن لا يمكن استخدامها مع علامة `-s` (`--sid`).
معنى كل عمود في الجدول الذي تم الحصول عليه من نتائج خيار `--dump` أو `--brut` هو كما يلي:
| Column Name | Description |
| :--- | :--- |
| `WNF State Name` | يتم عرض أسماء حالات WNF هنا |
| `S` | نطاق البيانات لاسم حالة WNF. معاني الأحرف المعروضة هي كما يلي:<br><br>+ `S` : نطاق النظام<br>+ `s` : نطاق الجلسة<br>+ `U` : نطاق المستخدم<br>+ `P` : نطاق العملية<br>+ `M` : نطاق الجهاز<br>+ `p` : نطاق الجهاز الفعلي |
| `L` | عمر اسم حالة WNF. معاني الأحرف المعروضة هي كما يلي:<br><br>+ `W` : معروف<br>+ `P` : دائم<br>+ `V` : مستمر (متطاير)<br>+ `T` : مؤقت |
| `P` | يعرض ما إذا كان اسم حالة WNF دائماً:<br><br>+ `Y` : نعم<br>+ `N` : لا |
| `AC` | التحكم في الوصول لاسم حالة WNF:<br><br>+ `RW` : قابل للقراءة والكتابة<br>+ `RO` : للقراءة فقط<br>+ `WO` : للكتابة فقط<br>+ `NA` : غير قابل للقراءة والكتابة |
| `N` | يعرض وجود المشترك:<br><br>+ `A` : يوجد مشترك<br>+ `I` : لا يوجد مشترك<br>+ `U` : غير معروف |
| `CurSize` | الرقم يعني حجم المخزن المؤقت الحالي المستخدم لاسم حالة WNF. |
| `MaxSize` | الرقم يعني الحد الأقصى لحجم المخزن المؤقت الذي يمكن استخدامه لاسم حالة WNF. |
| `Changes` | الرقم يعني عدد مرات التحديث. |
إذا كنت تريد استرجاع معلومات حول اسم حالة WNF محدد، فقم بتنفيذ `SharpWnfDump.exe` مع خيار `-i` (`--info`) كما يلي:```
PS C:\Dev> .\SharpWnfDump.exe -i WNF_SHEL_APPRESOLVER_SCAN
| WNF State Name | S | L | P | AC | N | CurSize | MaxSize | Changes |
----------------------------------------------------------------------------------------------------------------------
| WNF_SHEL_APPRESOLVER_SCAN | S | W | N | RW | A | 4 | 4 | 1 |
يمكن استخدام الخيار -i (--info) مع العلم -v (--value)، و-r (--read)، و-s (--sid):```
PS C:\Dev> .\SharpWnfDump.exe -i WNF_SHEL_APPRESOLVER_SCAN -s -v