1

目的: 2 つの同一環境でビルドされた同じバイナリのバイナリ サイズの違いの理由を理解すること

背景: 別の場所に新しい複製ビルド環境を作成しました。ただし、これら 2 つの環境のバイナリ サイズを比較すると、両方の環境でバイナリの 60% 以上が同じサイズではありません。

実行したアクション / 必要なアクション: サイズが異なる理由を理解するために、readelf、objdump、cmp、vbindiff、Beyond Compare などのツールを使用してみました。これらのツールを使用すると、違いが強調表示されますが、何が原因かわかりませんその意味と、サイズの問題を解決するためのアクションを実行する方法です。

例えば:

環境 1 からのバイナリ 1 は次を示します: エントリ ポイント アドレス: 0x10cc8

環境 2 からのバイナリ 1 は次を示します: エントリ ポイント アドレス: 0x10d10

これら2つのバイナリの上記の違いが何を意味するのかわかりません。

同様に

環境 1 からのバイナリ 1 は次を示します: セクション ヘッダーの開始: 215080 (ファイルへのバイト数)

環境 2 からのバイナリ 1 は次を示します: セクション ヘッダーの開始: 215172 (ファイルへのバイト数)

同様に、これら 2 つのバイナリ間にはさまざまな相違点があります。

バイナリ ファイル サイズの違いの理由を理解するための措置を講じるために、強調表示されている違いを理解する方法を提案できますか。

PS: 次の投稿を読みましたが、 gcc でコンパイルされたバイナリのサイズが異なるいくつかの手順を実行するのに非常に役立ちました か?

前もって感謝します

4

0 に答える 0