私はエルフのバイナリについて学びました。プログラムに書かれたコードが実行可能なメモリ領域にあることを手動で確認したい(リンクされる共有ライブラリのコードと同じ)。 私は簡単なプログラムがあります。私が行うと int main() { return 0; }
を: readelf -a myprog
私は、次を得る: Section Headers:
[Nr] Name Ty
最近、elfファイルについていくつかの知識を学びたいと思いますが、グローバル変数、グローバル静的変数、スコープ静的変数に遭遇したときには少し混乱します。例えば、 int a = 2;
int b;
static int c = 4;
static int d;
void fun(){
static int e = 6;
static int f;
}
int
c(またはasm)でhello-world-likeプログラムをgccにリンクすると、結果の実行可能オブジェクトファイルにいくつかの要素が追加されます。私はランタイムダイナミックリンカと_startエントリポイントについてのみ知っていますが、これらの追加された関数の種類は何ですか? 00000000004003f0 t deregister_tm_clones
0000000000400430