問題タブ [pe-exports]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 「エクスポート」命名規則 - どのように機能しますか?
PE (Portable Executable) のエクスポート セクションで使用される名前には、どのような規則が適用されますか? 大まかに言うと、「_」アンダースコア、「?」で始まる名前が表示されます。疑問符または「@」アットマーク。それらは何を意味し、名前の残りの部分はどうですか?
また、命名規則をより使いやすいものにするにはどうすればよいですか?
c# - PE モジュールのエクスポート テーブルから名前を読み取るにはどうすればよいですか?
別のプロセスによってメモリにロードされたアンマネージ モジュールから PE ヘッダーを正常に読み取りました。ここでやりたいことは、このモジュールのエクスポートの名前を読み取ることです。基本的に、これは私がこれまでに持っているものです (PE 解析コードの大部分は省略しました。これが機能することは既にわかっているためです)。
拡張機能
GetExports()
これを実行すると、二重の疑問符のパターンと完全にランダムな文字だけが得られます。署名が正しいため、ヘッダーが正しく読み取られていることがわかります。問題は、関数リストを繰り返し処理する方法にあります。
c# - エクスポートテーブルがファイル自体よりも大きいファイルオフセットに表示された場合、dumpbinはどのようにしてエクスポートテーブルを読み取ることができますか?
私は小さなPEリーダーを書いているので、テストアプリケーションと一緒にdumpbinを実行して、値が正しく読み取られていることを確認します。エクスポートテーブルを除いて、これまでに機能していたすべてのもの。
私がテストしているファイルはDLLです。私のアプリケーションはファイルをバイト配列として読み込み、それが私のPEリーダークラスに渡されます。値は、RVAやエクスポートデータディレクトリのサイズなど、dumpbinによって出力された値と一致します。
問題は、バイト配列のサイズがわずか42,496であるということです。ご想像のとおり、私のPEリーダーがE000(57,344)で読み込もうとすると、が表示されますIndexOutOfRangeException
。ただし、dumpbinにはそのような問題はなく、エクスポートディレクトリを正常に読み取ります。そして、はい、ファイル全体が実際にバイト配列に読み込まれています。
これはどのように可能ですか?
debugging - VS2010 スレッド データ スタック
Windows dll (user32.dll) 内の SetTimer 関数に侵入する方法を見つけました。 リンクテキスト
ただし、どの引数で呼び出されたかを知る必要があります。関数を呼び出す直前に引数がデータ スタックにプッシュされると思いますが、Visual Studio 2010 でスレッド データ スタックを表示する方法が見つかりませんでした。
c++ - EXE は静的 lib エクスポートもエクスポートします
静的ライブラリと EXE ファイル (静的ライブラリを使用) の両方を作成しましたが、IDA pro で EXE を開くと、エクスポートも EXE に一覧表示されます。
.lib 自体でエクスポートする必要があることはわかっていますが、EXE でもエクスポートとして表示されるのはなぜですか?
編集:これはエクスポート/インポートです(それらは別々のヘッダーファイルにあります)
エクスポートは次のとおりです。
そしてインポート:
c++ - PE エクスポート テーブルの関数ではないエントリ
特定の DLL のエクスポート テーブルを調べたところ、テーブルに奇妙なエントリがいくつかあったので、pecoff 仕様でこの問題に対する回答を見つけようとしましたが、何も見つかりませんでした。 1。
特定の DLL (Qt5Core.dll) でダンプビンを実行したところ、エクスポート テーブルに関数ではないエントリがあることがわかりました- > アドレスが .data セクションと .rdata セクションを指しているエントリがあります... 例:
const QAbstractState::`vftable' 67366E0C 1470 QMetaObject const QEventTransition::staticMetaObject 673C15A8 6160 QCoreApplication * QCoreApplication::self 6746180C 5504
いくつかの c++ 変数のようですが、なぜそれらが exports テーブルにあるのだろうか? ありがとう!