“出口” 命名约定 - 它是如何工作的?

发布于 2024-07-08 13:17:10 字数 139 浏览 14 评论 0 原文

对于最终出现在 PE(可移植可执行文件)导出部分的名称适用哪些规则? 粗略地说,我看到的名称以下划线“_”开头,“?” 问号或“@”符号。 这些是什么意思,名字的其余部分又是什么意思?

另外 - 如何将命名约定反转为更有用的东西?

What rules apply to the name that ends up in the exports section of an PE (Portable Executable)?
Roughly, I see names starting with an '_' underscore, a '?' question mark or an '@' at-sign. What do those mean, and what about the rest of the name?

Also - How can I reverse the naming convention into something more usable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

握住我的手 2024-07-15 13:17:10

我认为您指的是“dll name mangling”

name mangling

它用于确保导出名称是唯一的

您可以指定一个 .def 文件,这样以后使用起来会更容易 简单

地说,一个 .def 文件是只是一个包含以下结构的文本文件

LIBRARY "MyDll"

EXPORTS
    exportFunction1

I think you are refering to "dll name mangling"

name mangling

It's used to make sure exports names are unique

You can specify a .def file which will make it easier to use afterwards

Simply put, a .def file is just a text file containing the following structure

LIBRARY "MyDll"

EXPORTS
    exportFunction1
夏末染殇 2024-07-15 13:17:10

另一件事:Jcl 包含另一个非常有用的函数来解码这些符号。
你可以在JclPeImage中找到它; 它称为 PeUnmangleName - 它是 UndecorateSymbolNameA/W WinAPI 的扩展。

One other thing : Jcl contains yet another very usefull function to decode these symbols.
You can find it in JclPeImage; It's called PeUnmangleName - which is an extension of the UndecorateSymbolNameA/W WinAPI.

遮云壑 2024-07-15 13:17:10

在问这个问题之前我应该​​先看一下 - 因为我刚刚找到了一个答案:

它被称为“名称修改”,这里有一个解释它的链接:http://en.wikipedia.org/wiki/Name_mangling

很抱歉打扰您; 干杯!

I should have looked a little longer before asking this - as I just found an answer to this:

It's called 'name mangling', and here's a link explaning a bit about it : http://en.wikipedia.org/wiki/Name_mangling

My apologies for bothering you; Cheers!

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