NM输出缺少符号名称
NM -N文件的输出看起来像这样:
0000000000800000 A _stack
0000002001000000 W _RELAX_END_
0000002001000010 T _start
0000002001000024 t
0000002001000024 T f1
0000002001000036 t
0000002001000036 T f2
0000002001000052 t
0000002001000052 T f4
0000002001000064 t
0000002001000064 T f5
0000002001000078 t
此输出对我来说似乎有些奇怪。通常,当我运行NM时,我几乎看到第三列中的符号名称的每一行。是什么导致产出这样的产生?是否存在一个已剥离的符号0000002001000024
?
The output from nm -n file looks like this:
0000000000800000 A _stack
0000002001000000 W _RELAX_END_
0000002001000010 T _start
0000002001000024 t
0000002001000024 T f1
0000002001000036 t
0000002001000036 T f2
0000002001000052 t
0000002001000052 T f4
0000002001000064 t
0000002001000064 T f5
0000002001000078 t
This output looks somewhat odd to me. Usually when I run nm I see almost every line with a symbol name in the third column. What would cause the output to be generated like this? Is there a symbol that exists at, for example, address 0000002001000024
that has been stripped?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是奇数。
剥离的符号不会出现在符号表中,这是一个。
这可能是编译器或汇编程序的工件(错误?),由于某种原因,它散发出一个局部符号,其中每个符号都为其发出的每个全局符号发出空名。
也有可能是一个非空名称,但是该名称被(一个或多个)
nul
s覆盖,作为某种混淆/反 - 的一部分反向工程措施。It is odd.
Stripped symbols do not appear in the symbol table, this one does.
It's probably an artifact (bug?) of the compiler or assembler, which for some reason emits a local symbol with empty name for every global symbol it emits.
It's also possible that there was a non-empty name there, but that name was overwritten with (one or more)
NUL
s as part of some kind of obfuscation / anti-reverse-engineering measure.