Ubuntu 18.04でIDA Proまたはcoreutilsを使用してプログラムを逆アセンブルすると、""記号がありますが、/bin/cat
通常は。start
_start
gimp
ただし、スイッチを使用してnm
シンボルを見つけると、シンボルは-D
見つかりませんstart
。なぜそんなことですか?
私の使命は、与えられたプログラムのエントリポイントを指す記号を見つけることです。
答え1
バイナリのエントリポイントはヘッダーのポイントとして見つけることができます。ELFバイナリLinuxで使用される場合、オフセット0x18の32ビットまたは64ビット値。
objdump -f
バイナリを実行すると、これを確認できます。
nm
バイナリのデバッグシンボルをバイナリから直接(削除していない場合)またはスタンドアロンシンボルとして使用できる場合は、コンパイラが実際に生成したと仮定すると、実際のシンボルのみが表示されます。