Ich dachte, es mit Netext möglich war, aber es ist nur in der Nähe SOSEx‘!strings
, so braucht es etwas mehr Scripting
0:000> .load F:\...\netext\2.0.1.5580\x86\NetExt.dll
NetExt version 2.0.1.5580 Aug 3 2015
License and usage can be seen here: !whelp license
Check Latest version: !wupdate
For help, type !whelp (or in WinDBG run: '.browse !whelp')
Questions and Feedback: http://netext.codeplex.com/discussions
Copyright (c) 2014-2015 Rodney Viana (http://blogs.msdn.com/b/rodneyviana)
Type: !windex -tree or ~*e!wstack to get started
0:000> !windex
Starting indexing at 20:55:54
Indexing finished at 20:55:54
30,707 Bytes in 343 Objects
Index took 00:00:00
0:000> !wfrom /nofield /type System.String where (m_stringLength>50) select m_stringLength
0n100
0n137
0n130
0n100
...
Um den 0n
Präfix loszuwerden, verwenden wir $substr(m_stringLength,2,100)
.
So erhalten wir einen Überblick über die Längen von Strings. Diese Liste einige Sortierung benötigt, so lassen Sie uns einen .shell
und die sort /R
Befehl DOS verwenden:
!! -ci "!wfrom /nospace /nofield /type System.String where (m_stringLength>50) select $substr(m_stringLength,2,100)" sort /R
Aus dem Ergebnis wollen wir die Top-N Artikel erhalten eine Schleife und einige Elemente übersprungen werden. Ersetzen 0n2
durch die Anzahl der Artikel, die Sie wollen minus 1.
.foreach /pS 0n2 /ps 999999 (length {!! -ci "!wfrom /nospace /nofield /type System.String where (m_stringLength>50) select $substr(m_stringLength,2,100)" sort /R}) {.echo length}
Jetzt, wo wir die Mindestlänge der Top-N-Strings kennen, können wir es auf den ursprünglichen !wfrom
Befehl erneut anwenden.
Hey, war das nicht so einfach? Die Ausgabe in eine Textdatei ist manchmal eine ziemlich gute Lösung ...
Oh Junge, ich habe am Ende Ausgabe in eine Textdatei den gesamten Inhalt von '! Dumpheap -mt 00007fff6c9c16b8', wo' 00007fff6c9c16b8' ist die MT von String . – mark