現在のスレッドスタックのすべてのArgをChildにダンプするにはどうすればいいですか?現在のスタックのすべてのフレームについて、argsにdu
のようなコマンドを実行したいと思います。すべてのフレームでdu ebp+<1st 4 args>
のように指定されたスタック上のすべてのArgsを子にダンプする
1
A
答えて
0
IMHO WinDbg自体ではあまり簡単ではありませんが、このタスクを解決するにはPyKdをお勧めします。 Pythonが正しいビット数(WinDbgと同じビット数)でインストールされていることを確認してください。
0:000> .symfix
0:000> .reload
0:000> .load E:\...\pykd\0.3.0.27\x86\pykd.dll
使用pykd.pyd
にはpykd.dll
がない場合。
0:000> !py
>>> s = getStack()
>>> for f in s:
... for p in range(1,4):
... print("%016X" % (ptrPtr(f.sp + p*ptrSize())))
...
>>> exit()
s
現在のスレッドのスタックです。for f in s
すべてのフレームにわたってループ。p
は、0
が返信アドレスになり、1
〜4
がkb
で表示されるパラメータになります。p*ptrSize()
メモリ
"%016X" % n
から正しいf.sp
はあなたptrPtr()
ポインタサイズの読み出し、現在のフレームのスタックポインタを与えるbit化に対してオフセット(bit化認識)データを算出ヘクスに番号をフォーマットexit()
インタラクティブコンソール
のあなたを取得する今、あなたはすべてのparameteを持っていることrsの場合、値を文字列としてダンプすることもできます。 PyKdのloadWStr()
を試すことができます。ここでは、完全なスクリプトは次のとおりです。
from pykd import *
s = getStack()
for f in s:
for p in range(1,4):
paramaddr = f.sp + p*ptrSize()
string = loadWStr(paramaddr)
print(string)
あなたがすべてのスレッドにそれを適用したい場合は、このようにそれを実行します。
0:000> ~*e !py string.py
+0
aha that worked thx – capsch
関連する問題
- 1. c#指定された名前の配列のすべての子を取得
- 2. 指定されたキーを持つファイル内のJSONの値をダンプする
- 3. Antスクリプトで定義されているすべてのプロパティをダンプします。
- 4. 指定された範囲の間のすべての日付
- 5. サイクルリスト - 指定されたすべての値を削除
- 6. Firebaseの指定された子によるフィルタリングと並べ替え
- 7. ExtJS 4 - 指定された要素の子孫であるすべてのコンポーネントを取得する
- 8. 指定されたタイプのすべてのコントロールのデフォルトプロパティを設定します。
- 9. 指定された子は、すでに私のアダプタの親、RecyclerView
- 10. 指定されたディレクトリのすべてのソースをコンパイルする1つのメイクファイル
- 11. 指定されたディレクトリにゼロサイズのすべてのファイルを削除します
- 12. 指定された長さの配列の上に配列を追加する
- 13. 指定された値のすべてのインスタンスを削除するリンクリスト
- 14. 指定された値のすべての並べ替えのリスト
- 15. レベルに関係なく指定されたタイプのすべての子を取得
- 16. すべてのテーブルを1つにダンプするためのハイブクエリ
- 17. 指定された親IDからすべての子ノードと孫ノードを検索するPHP
- 18. SQLで指定されたノードの親ノードと子ノードをすべて検索するクエリ
- 19. 指定された特定の日付からすべてのセールを選択
- 20. GITの履歴から指定された拡張子を持つすべてのファイルを削除します。
- 21. gsub()指定された文字を除くすべて?
- 22. Python S2/S2sphereライブラリ - 指定されたレベルで地球上のすべてのs2セルを見つける
- 23. Visual Studioのすべてのスレッドの呼び出しスタックをダンプまたは検索する方法
- 24. 指定されたすべてのホストを反復する方法
- 25. クリックイベントで指定されたすべてのdiv要素を表示する
- 26. 指定された要素の子孫でないすべての要素を選択します。
- 27. Django:reverse()にargs/kwargsが指定されたビューが見つかりません
- 28. Perl:すべてのライブデータをダンプする
- 29. 指定されたユーザーによって作成されたすべてのファイルを削除します
- 30. 指定されたノードの後のすべてのノードを削除します
申し訳ありませんが、あなたが 'kP'を求めていますか?スタックトレースの各呼び出しのすべてのパラメータが別の行に表示されます – EdChum
変更された呼び出し規約のために、 'kP'と' kb'がx64でうまく動作しない可能性があります。 –
'!for_each_frame'は解決策の一部かもしれません。 –