读书人

objdump导出文件查看步骤

发布时间: 2013-03-19 17:22:05 作者: rapoo

objdump导出文件查看方法
本帖最后由 lgbxyz 于 2013-03-16 20:50:57 编辑 ※这是一个通过objdump命令导出的文件的一部分。

① 内容被分成3列,除了第三列是汇编外,前2列是什么有 ?
② 当程序执行到9fc04时产生了SIGABRT信号,有什么原因?
PS:__stack_chk_fail_local应该是linux系统的函数吧,程序中没有调用过,什么情况系统会自动调用该函数?
------------------------------------------------
0009fbf0 <__stack_chk_fail_local>:
__stack_chk_fail_local():
9fbf0:55 push %ebp
9fbf1:89 e5 mov %esp,%ebp
9fbf3:53 push %ebx
9fbf4:e8 37 a0 f6 ff call 9c30 <__i686.get_pc_thunk.bx>
9fbf9:81 c3 fb 5c 00 00 add $0x5cfb,%ebx
9fbff:e8 40 9c f6 ff call 9844 <__stack_chk_fail@plt>
9fc04:90 nop
9fc05:90 nop
9fc06:90 nop
9fc07:90 nop
9fc08:90 nop
------------------------------------------------ linux opjdump 汇编 c
[解决办法]

引用:
引用:第一列:内存地址
第二列:汇编对应的机器码
第三列:汇编

再请教一下:
①运行一个out文件,是先将这个out的内容load到内存中了吗?
(因为试过等程序启动后,删除out文件,程序还能正常运行)

②>>>>>>第一列:内存地址
→是每条汇编语句对应一个内存地址吗?
那么该地址中对应的存储内容就是第二列的……

①这个应该是都被load进去了吧。。另一方面linux系统下的文件系统采用的引用计数的方式,打开一个文件后会+1,,rm一下会-1..只有当引用计数为0时,才真正删除了文件。。正在运行中的文件处于打开状态+1了,所以rm后虽然看不到了,但确实存在。当运行结束后-1,,才会真正删除。
比如用lsof恢复误删除的文件就是利用的此方法。http://tech.ccidnet.com/art/302/20071203/1294921_1.html

②对。

读书人网 >UNIXLINUX

热点推荐