2008-11-20 34 views
0

什么规则适用于PE(Portable Executable)的导出部分结束的名称? 粗略地说,我看到以'_'开头的下划线,'?'问号或“@”号。这些是什么意思,其余的名字呢?'出口'命名约定 - 它是如何工作的?

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

回答

3

我想你指的“DLL名称重整”

name mangling

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

你可以指定一个DEF文件,这将使它更容易使用之后

简单地说,一个DEF文件仅仅是包含以下结构的

一个文本文件210
+1

请注意,德尔福不使用DEF文件。相反,可以在代码中的“exports”子句中指定名称。索引也可以在那里指定。 – 2008-11-20 22:46:42

0

我应该看长一点,要求在此之前 - 正如我刚刚找到一个答案:

这就是所谓的“名字粉碎”,而这里的地名释义一些关于它的链接:http://en.wikipedia.org/wiki/Name_mangling

我很抱歉打扰你;干杯!

1

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