Изменился ли когда-либо порядковый индекс функций в dll Windows API? - PullRequest
3 голосов
/ 26 декабря 2010

Вы знаете, что функции в dll можно импортировать либо по имени, либо по порядковому индексу.

С википедия : для большинства функций Windows API сохраняются только имена в разных выпусках Windows; порядковые номера могут быть изменены. Таким образом, нельзя надежно импортировать функции Windows API по их порядковым номерам.

Мой вопрос: Я знаю, что эти ординалы МОГУТ ИЗМЕНЯТЬСЯ, но я хочу знать, действительно ли они когда-либо менялись. (Особенно о kernel32 и user32 dll)

Почему я спрашиваю об этом? Я слышал, что некоторые вирусы импортируют функции win32 по порядковому номеру. Я хочу поймать их и узнать, могу ли я проверить порядковый номер или нет.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 26 декабря 2010

На этот вопрос очень легко ответить, и ответ: да . Просто возьмите две версии kernel32.dll и посмотрите на них с помощью PE PE Viewer.

Например, слева - kernel32.dll для Windows 7, а справа - kernel32.dll для Windows Vista. Вы можете видеть, что добавление AddIntegrityLabelToBoundaryDescriptor привело к увеличению их порядковых функций на 1 по сравнению с Vista.

Я не понимаю, почему вы хотите использовать эту информацию для ловли вирусов. Вирусы могут использовать множество других способов получить адрес функции.

alt text

2 голосов
/ 26 декабря 2010

Это не имеет значения. Вирус, который использует неправильный порядковый номер, не может размножаться. Вы не можете поймать вирусы, которые не могут размножаться, вы их никогда не увидите. И не важно, что вы делаете, это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...