
विंडोज़ नोटिफिकेशन सुविधा के लिए C# यूटिलिटीज़
यह Windows Notification Facility (WNF) टूल्स के लिए रिपॉज़िटरी है। वर्तमान में, Alex Ionescu (@aionescu) और Gabrielle Viala (@pwissenlit) द्वारा विकसित wnfun में टूल्स का C# पोर्ट अपलोड किया गया है। जब मैं Windows Notification Facility के लिए अतिरिक्त टूल्स विकसित करूँगा, तो वे यहाँ अपलोड किए जाएँगे।
यह टूल 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--
To show only state name used in system, set `-u` (`--used`) flag.
This flag can be applied to `-d` and `-b` option:
सिस्टम में उपयोग किए गए केवल state नाम दिखाने के लिए, `-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--
यदि आप Security Descripter जानकारी प्राप्त करना चाहते हैं, तो -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 State Names की जानकारी प्राप्त करने के लिए, -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--
The `-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