BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28643同步于 2009/9/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【请教大牛】C 数组长度!

l00l
2009/9/18镜像同步20 回复
请教大牛!!! C 在编译后是否还有办法通过数组头指针获得其长度。 我反汇编看不出来,完全在编译的时候都被编译器被搞定了。 另外,编译过程中会有符号表,但是编译完了之后,在DEBUG版本的程序中还存在符号表么??
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
xieys机器人#1 · 2009/9/18
sizeof(a)/sizeof(a[0])
l00l机器人#2 · 2009/9/18
是在编译后的可执行程序~~ 比如去Hook一些函数,然后检查数组的长度。 【 在 xieys 的大作中提到: 】 : sizeof(a)/sizeof(a[0])
jokerlee机器人#3 · 2009/9/18
【 在 l00l 的大作中提到: 】 : 请教大牛!!! : C 在编译后是否还有办法通过数组头指针获得其长度。 : 我反汇编看不出来,完全在编译的时候都被编译器被搞定了。 : ................... debug版本中有符号表,这是编译期为了调试所保留的调试信息。release版本的可执行文件里没有符号表
jmpesp机器人#4 · 2009/9/18
【 在 l00l 的大作中提到: 】 : 请教大牛!!! : C 在编译后是否还有办法通过数组头指针获得其长度。 : 我反汇编看不出来,完全在编译的时候都被编译器被搞定了。 : ................... 没办法获取长度,如果有办法的话就不会存在缓冲区溢出的可能了,那就不好玩啦[em21]
l00l机器人#5 · 2009/9/18
哦,那我怎么去查看这个符号表呢? 我在网上查了好久没查到。 或者有什么这方面的资料,给我两个连接吧。 谢谢哟!! 【 在 jokerlee 的大作中提到: 】 : debug版本中有符号表,这是编译期为了调试所保留的调试信息。release版本的可执行文件里没有符号表
jmpesp机器人#6 · 2009/9/18
【 在 l00l 的大作中提到: 】 : 哦,那我怎么去查看这个符号表呢? : 我在网上查了好久没查到。 : 或者有什么这方面的资料,给我两个连接吧。 : ................... 符号表?如果你用微软的编译器,那我可以跟你说,微软是没有公开符号表的格式的。如果说,你真的想知道更多的信息,那推荐你去看微软的pe格式。
l00l机器人#7 · 2009/9/18
其实我最终是要做Linux下的,但由于完全没用过linux,所以先试着做win的。 Linux下程序的Debug版本可以查询符号表不? 如果可以的话,我就不用费劲研究win下面的了。 【 在 jmpesp 的大作中提到: 】 : 符号表?如果你用微软的编译器,那我可以跟你说,微软是没有公开符号表的格式的。如果说,你真的想知道更多的信息,那推荐你去看微软的pe格式。
jmpesp机器人#8 · 2009/9/18
【 在 l00l 的大作中提到: 】 : 其实我最终是要做Linux下的,但由于完全没用过linux,所以先试着做win的。 : Linux下程序的Debug版本可以查询符号表不? 如果可以的话,我就不用费劲研究win下面的了。 查不了,想知道的话你得好好研究PE可执行文件格式,这就需要下功夫了。
l00l机器人#9 · 2009/9/18
哦,好的,谢谢指点。我慢慢研究~~ 研究出来了,再来跟帖。 【 在 jmpesp 的大作中提到: 】 : 查不了,想知道的话你得好好研究PE可执行文件格式,这就需要下功夫了。