2011-07-09 4 views
0

私はデバッガでアプリケーションを見ています(私はソースコードを持っていません!)。 特定の関数(エクスポートされた関数)にブレークポイントを置き、スタックトレースを見ます。 明らかに私はシンボルを見ることができませんが、私はDLL名と序数を見ることができます。スタックトレースを使用した関数の検出

私の質問は、スタックトレースに表示されている関数がエクスポートされているかどうかを確認する方法です。より正確にするために、私がスタックトレースで見る順序は、従属ウォーカーに見られるのと同じ順序ですか?

ありがとうございます! :-)

+0

POW: "あなたの名前、プラットフォーム、およびツールチェーンの状態を教えてください"? – sehe

+0

そのWindowsマシンです。 「名前」と「ツールチェーン」の意味を理解できません。 – TCS

答えて

1

そのWindowsマシンです。私はあなたが "名前"と "ツールチェーン"の意味を理解していません。 - TCS

TCS:複数のデバッガがあり、複数のリンカがあり、DLLに異なるタイプのメタデータを生成する可能性があることを暗示していました。ポイントに、私は今、ブランドの新しいバージョン2.0(here)があるように思われた、OllyDbgで(DLLさんを含む)の良い「デバッグ」(検査/監査)サードパーティ製のソフトウェアを持っていた

これは、コード解析を賢明にします(アセンブリ言語と動的ローディングについて知っていればわかります)。確かにモジュール名を追跡し、それらの呼び出しを記号名にマッピングするのは簡単です(1)。特にOllyDbgは無料です。

商業的には、同様のツールがいくつかあると思いますが、IDA Proが最も大きな名前であると思います。

希望に役立ちます。

1それは(たとえば、あなたがマイクロソフトからダウンロードできるものなど)デバッグシンボルを活用し、それも期待LPPARAMのレイアウトを知って、その意味のある名前(代わりに、一定のつまりWM_PAINTへのWin32 APIに引数を変換しますあまりになど)。

0

Visual Studioのコマンドプロンプトから起動したコマンドdumpbin \exports name.dllは、エクスポートされたすべての機能を示します。

+0

お返事ありがとうございます。 私はエクスポートされた関数を見る方法を知っていますが、コールスタックに表示される序数が依存関係ウォーカーと同じかどうかはわかりません。 – TCS

関連する問題