問題タブ [portable-executable]
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.
dll - インポートアドレステーブルのサンクテーブル?
外部 DLL で使用される関数をインポートするために EXE ファイルで使用されるインポート アドレス テーブルに関連するサンク テーブルとは何ですか?
このサンク テーブルは、他の関数への「サンク」を含む単なるテーブルですか?
resources - Windows ポータブル実行可能リソース - 埋め込まれたマニフェスト構造の説明を探しています
PE ファイルに埋め込まれたマニフェストの説明を探しています。XML ファイルであることはわかっています。探しているのは、その構造やフィールドの説明です。
windows - アプリケーション マニフェストとアセンブリ マニフェストの違い
アプリケーション マニフェストとアセンブリ マニフェストの違いは何ですか? それぞれどこで使われていますか?2 つのうち、.dll または .exe リソースにあるのはどれですか? (または両方が存在する可能性がありますか?)。
一度に質問が多すぎて申し訳ありませんが、誰かが私にこれを説明できるなら、それは本当に役に立ちます. 私がこれを求めている理由は、PE ファイルに埋め込まれたマニフェストから情報を抽出できるようにしたいからです。これらのマニフェストの説明を見つけましたが、2 つあり、どちらに従うべきかわかりません。
アプリケーション マニフェストの説明
アセンブリ マニフェストの説明
編集: いいえ、API 呼び出しを使用したくありません。すべて自分で書いています。
portable-executable - エクスポートされた関数にはヒントがありますか?
依存関係ウォーカー(depends.exe)は、エクスポートされた関数の「ヒント」列を表示します。Portable Executable形式を理解している限り、エクスポートされた関数にはヒントがありません。エクスポートされた関数にヒントがあるかどうか誰かに教えてもらえますか?実際には、インポートされた関数のみにヒントが必要です。
私はついに私の質問に対する答えを見つけました...:
依存関係Walker(およびDumpbin)では、「ヒント」はEAT(エクスポートアドレステーブル)内のエクスポートされた関数の位置です。ローダーがIAT(インポートアドレステーブル)から関数を検索するときにこの位置を使用するため、この位置は「ヒント」と呼ばれています。と同じくらい簡単です!
ありがとう。
windows - MicrosoftのASLRは奇妙です
ASLRされたdllイメージの32ビットプロセスのベースアドレスを見ました。
完全なランダム化ではありません。確率の1/2をランダム化しただけです。
たとえば、dllをロードすると、画像は0x12345678にロードされます。
そして、画像を再度ロードすると、画像は0x23456789にロードされます。(ベースアドレスが変更されました!)
しかし、画像を再度ロードします
0x12345678
0x23456789
0x12345678
0x23456789
.. ..
なぜ彼らはこのように実装したのですか?
クラッシュレポートの頻度ですか?(再デプロイされたdllと同じクラッシュアドレスを取得するため)
.net - ネイティブ Win32 プログラムから .NET VM (mscorlib) を呼び出して、IL やその他の内部コンパイル コード形式を実行できますか?
古い質問: IL (.NET) コードを含む .exe (PE) があります。開始されると、mscorlib.dll (.NET フレームワーク) 関数が呼び出されて IL コードが開始されます。.NET コード セグメントを抽出し、それを他のプログラム (mscorlib.dll を呼び出してそのセグメントを実行するプログラム) に追加できますか?
新しい質問:
C# .NET プログラムからのコンパイル済みコードを、.NET ランタイムなしで実行できるネイティブの純粋な Win32 アプリケーションに追加し、.NET が存在する場合は mscorlib.dll の関数を動的に呼び出して実行したいと考えています。これは、ネイティブ コンパイルではなく、「実行可能ジョイナー」テクニックのようなものです。
.NET .exe を一時ディレクトリに書き込んで実行したくありません。それはすでに行われており、ファイル内の.NETコードで.NET vmを直接呼び出して一時フォルダーを削除したい(見つかった構造/セッションのオフセットを与えるか、正しいPE .section名を割り当てるだけで-知っているだけ) PortableExecutable 形式について少し説明します)。
c# - 実行可能ファイルにデータを保存する
実行可能ファイルと同じフォルダー内のファイルにデータを保存するポータブル実行可能ファイルがあります。アプリを閉じたときに実行可能ファイル自体にデータを保存する方法はありますか?
これは奇妙かもしれませんが、私と一緒にデータを取得し、exeファイルとデータ用のファイルが1つしかないのは素晴らしいことです。
これがC#で作成されている場合は望ましいですが、必須ではありません。
.net - .Net実行可能ファイル/dllでバイトコード(CIL)をプログラムで見つける方法は?
PEファイル(.Netアセンブリであることがわかっています)を開き、.Netバイトコードがどこにあるか(理想的にはエントリポイントから開始)を見つけたいと思います。PEヘッダーデータ(エントリポイントRVA)を使用すると、mscoree.dllからCorExeMainを呼び出すスタブに移動できます。
これは私が探しているものではありません。mscorlibによって実行されるバイトコードを見つけたいと思います。C ++を使用し、ildasm、dumpbinなどの外部ツールを使用せずにそれを行うにはどうすればよいですか?私はすでにPEヘッダーを解析して、イメージベース/RVAの意味を知ることができます。ILバイトコードの場所に関する十分な情報がどこにあるのかわかりません。
calling-convention - WindowsでのPEバイナリファイルの呼び出し規約を調査するにはどうすればよいですか?
呼び出し規約が_cdeclか_stdcallか、それともそうでないかを示すツールはありますか?
portable-executable - PEiD は、ハードコーディングされたソフトウェアの制限に対処できますか?
私たちが知っているように、 PEiDは PE ファイルのほとんどの一般的なパッカー、クリプター、およびコンパイラーを検出できますが、ソフトウェアの使用日の制限など、ハードコーディングされたもの (サードパーティのパッカーなどによるものではない) を検出できますか?