NM输出缺少符号名称

发布于 2025-01-30 02:27:04 字数 589 浏览 3 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2025-02-06 02:27:04

这个输出对我来说看起来有些奇怪。

奇数。

是否有一个符号,例如地址0000002001000024已被剥离的符号?

剥离的符号不会出现在符号表中,这是一个。

这可能是编译器或汇编程序的工件(错误?),由于某种原因,它散发出一个局部符号,其中每个符号都为其发出的每个全局符号发出空名。

也有可能是一个非空名称,但是该名称被(一个或多个)nul s覆盖,作为某种混淆/反 - 的一部分反向工程措施。

This output looks somewhat odd to me.

It is odd.

Is there a symbol that exists at, for example, address 0000002001000024 that has been stripped?

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) NULs as part of some kind of obfuscation / anti-reverse-engineering measure.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文