【发布时间】:2017-08-09 23:38:36
【问题描述】:
我是二进制分析的新手。我正在尝试分析我通过 gcc 从我的 C 代码编译的一个简单程序。
我按照以下步骤操作:
1。 aaa
2。 afl
我得到了这个输出:
0x00000608 3 23 sym._init
0x00000630 1 8 sym.imp.puts
0x00000638 1 8 sym.imp._IO_getc
0x00000640 1 8 sym.imp.__printf_chk
0x00000648 1 8 sym.imp.__cxa_finalize
0x00000650 4 77 sym.main
0x000006a0 1 43 entry0
0x000006d0 4 50 -> 44 sym.deregister_tm_clones
0x00000710 4 66 -> 57 sym.register_tm_clones
0x00000760 5 50 sym.__do_global_dtors_aux
0x000007a0 4 48 -> 42 sym.frame_dummy
0x000007d0 1 24 sym.smth
0x000007f0 4 101 sym.__libc_csu_init
0x00000860 1 2 sym.__libc_csu_fini
0x00000864 1 9 sym._fini
我可以得到 main 是程序的主要起点,但我担心 entry0 是什么。显然从我所看到的不是一个符号。我尝试运行ag @ entry0 和ag @ main,我看到的图表非常不同。通过查看反汇编代码,我看到了 entry0:
我想这可能是一种 ELF 模板函数,用于加载二进制文件并从 main 运行它。 entry0 到底是什么?
抱歉,拖了这么久。提前致谢。
【问题讨论】:
标签: reverse-engineering binaryfiles