The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск Wine 8.10"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Выпуск Wine 8.10" +/
Сообщение от n00by (ok), 13-Июн-23, 08:18 
>> В оригинальной NT с каждым ядром и сервипаком индексы системных сервисов меняются, потому их и там наверняка и в вирусах используют лишь в исключительных случаях; так что вряд ли это что-то даст для совместимости.
> Не совсем. Индексы меняются, но их порядок и взаимное расположение если и
> изменяется, то несущественно.

Индекс нужен, что бы передать его аргументом (как номер сервиса) при вызове шлюза. Вот возможные варианты для одного из самых распространённых:

NtClose      0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000c       0x000d       0x000e       0x000d       0x000e       0x000f       0x000f       0x000f       0x000f       0x000f       0x000f       0x000f       0x000f       0x000f       0x000f       0x000f

Windows X86-64 System Call Table (XP/2003/Vista/2008/7/2012/8/10) https://j00ru.vexillium.org/syscalls/nt/64/

То есть перед вызовом надо узнать версию ОС (просто прочитать, отображается в пространство пользователя через KUSER_SHARED_DATA) и выбрать соответствующий. И так для каждого сервиса.

Что даёт "взаимное расположение если и изменяется, то несущественно"? Если бы мне были нужны эти индексы - я бы при помощи упрощенного дизассемблера вытаскивал их из ntdll.dll. Кажется, для того достаточно разобрать таблицу экспорта, а полагаться на неизменность взаимного расположения не стоит.

> Поэтому очень многие "сомнительного рода" программы, типа
> вирусов, античитов и прочих пакеров, активно на это полагаются.

Вирус - это зловред, внедряющий свой код в исполняемый файл. Они вообще встречаются в живой природе? Если же какие-то loader-ы используют несколько сисколов для распаковки и запуска основной нагрузки, тогда получается, что это использует меньше половины зловредов, то есть не многие.

> Другое дело, что в Wine порядок индексов полностью отличается от виндового (он
> алфавитный, а не исторический как в винде), поэтому ЯХЗ чего они
> хотели добиться этими изменениями.

Ну порядок как раз не сложно изменить, если потребуется. Может быть так проще, пока отлаживают.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск Wine 8.10, opennews, 10-Июн-23, 08:06  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру