Windows API DLL中函数的顺序索引是否发生过更改?

Windows API DLL中函数的顺序索引是否发生过更改?,windows,api,dll,Windows,Api,Dll,您知道dll中的函数可以按名称或顺序索引导入 From:对于大多数Windows API函数,在不同的Windows版本中只保留名称;序号可能会更改。因此,无法通过序号可靠地导入Windows API函数 我的问题:我知道这些序号可能会改变,但我想知道它们是否真的改变过。(特别是关于kernel32和user32 DLL) 我为什么问这个问题?我听说有些病毒确实会按顺序导入win32函数。我想抓住它们,我想知道我是否能测试一个序数 谢谢。这无关紧要。使用错误序号的病毒无法复制。你无法捕获无法复制

您知道dll中的函数可以按名称或顺序索引导入

From:对于大多数Windows API函数,在不同的Windows版本中只保留名称;序号可能会更改。因此,无法通过序号可靠地导入Windows API函数

我的问题:我知道这些序号可能会改变,但我想知道它们是否真的改变过。(特别是关于kernel32和user32 DLL)

我为什么问这个问题?我听说有些病毒确实会按顺序导入win32函数。我想抓住它们,我想知道我是否能测试一个序数


谢谢。

这无关紧要。使用错误序号的病毒无法复制。你无法捕获无法复制的病毒,你将永远看不到它们。你做什么也不重要,它不起作用。

这个问题很容易回答,答案是。只需获取两个版本的kernel32.dll,并使用PE查看器查看它们

例如,左边是Windows7的kernel32.dll,右边是WindowsVista的kernel32.dll。您可以看到,添加了
AddIntegrityLabelToBoundaryDescriptor
后,它下面的函数的序号比Vista增加了1

我不明白你为什么要用这些信息来捕捉病毒。病毒可以使用许多其他方式获取函数的地址


基本上,你知道你希望做的是错的,但你想知道你这样做是否安全?我们想知道为什么软件会坏掉。实际上我没有这么做。我读过《病毒做这件事》(在《计算机病毒研究与防御的艺术》一书中),我想知道如果病毒做这件事能逃脱惩罚,我就能用这种方式抓住它。