Native DLL - это dll содержащие вызовы Native API
происходит DLL_PROCESS_ATTACH событие
Блин, нежели не понятно, что твоя dll'а просто не присоединяется и все... Зачем придумывать какие-то сложности с тем, что они как-то "нитак" инициализируются?DLL_PROCESS_ATTACH не происзодит и точка ... 8-(...
это подсистема 1 уровня - NativeAPI
1) Нету никакой подсистемы win32. В природе. win32 - просто названия семейства оперционных систем.
NATIVE API
Как известно, Windows 2000 , была спроектирована таким образом, что бы дать возможность исполняться не только Win32 приложениям, но так же древним Win16, MsDos, Os/2v 1.x и POSIX. Короче говоря, ось имеет три встроенных по умолчанию подсистемы, каждая из которых исполняет свои образы. Реально, никто нам не мешает добавить в систему поддержку приложений иных операционных систем, всего лишь нужно написать и прикрутить модуль требуемой подсистемы. И все-таки как же это работает? Для ответа на данный вопрос посмотрим на рисунок ниже.
Если запускаемая программа не является Win32 приложением, а программой другой ос, тогда Win2k будет искать для нее соответствующий образ поддержки, который поймёт и запустит данное приложение. Если не найдёт, то вернёт ошибку соответственно. Поясним данную схему. Любой вызов, к примеру, приложения OS/2 будет конвертирован модулем поддержки данного приложения в вызов соответствующей функции родной библиотеки Win32-подсистемы KERNEL32.DLL. KERNEL32.DLL в свою очередь направит вызов одной из функции модуля NTDLL.DLL
Исчерпывающую информацию почти обо всех функциях Native Api Вы можете найти в книге Гари Нэббета “Справочник по базовым функциям API Windows NT/2000”, издательский дом “Вильямс”,2002. Но, я подчеркиваю почти , поскольку книга писалась во времена Win2K, то, соответственно, в ней описаны только те функции, которые существовали лишь в данной версии Windows, с выходом новых версий ядер 5.1(WinXP) и 5.2(Win.Net) было добавлено ещё некоторое количество функций, описания которых я, к сожалению не нашёл.
Тут стоит сказать ещё об одном важном моменте –именах функций, точнее их назначении. Как Вы заметили, вроде бы с виду одинаковые функции имеют префиксы Ntxxx и Zwxxx. Если заглянуть дизассемблером в модуль NTDLL.DLL, то особой разницы в этих функциях нет, кроме этих самых префиксов – Nt и сопоставленные им Zw указывают на один и тот же код. Что касается модуля NTOSKRNL.EXE, то в нем дела обстоят несколько иным образом. Функции, имена которых начинаются с префикса Zw, реально экспортируются данным модулем и вызываются напрямую. Функции, содержащие в своем имени префикс Nt – должны пройти ряд проверок на безопасность, прежде чем управление получат соответствующие функции Zw. Впрочем, советую не слишком ломать голову по данному вопросу, если честно, там сам чёрт ногу сломит.
А если EXE вызывает только эти "native api", то это native EXE? А если он вызывает напопалам, часть "native api", а часть "не native api", то это полу-native EXE?
DLL_PROCESS_ATTACH не происзодит и точка ... 8-(...
Блин, нежели не понятно, что твоя dll'а просто не присоединяется и все... Зачем придумывать какие-то сложности с тем, что они как-то "нитак" инициализируются?
А вот тут я пожалуй кое-что поясню. Дело в том, что в windows действительно есть часть операционной системы, которая расположена в верхней(кажеться) части АП. Код отсюда выполняется только в режиме kernel mode, в user mode эта память просто недоступна. Видимо это ты и имел ввиду, называя "это подсистема 1 уровня - NativeAPI". В эту "подсистему" действительно грузятся библиотеки, отличающиеся по своей структуре от обычных dll(хотя они то же являются PE-файлами). Библиотеки эти инициализируются процедурой DriverEnrty(в отличие от DllMain для обычных библиотек). Только называется эти dll не native dll, как ты видимо думаеш, а драйверами.
keks-n писал(а):Это низя сделать для ActiveX DLL.
keks-n писал(а):Таак, значит всё упирается в EXE. Ну тады кто мешает написать сервис и зарегить его под системный аккаунт?
Это пишется на VB, не надо никакой спец. DLL, и работает с аккаунтом NT_AUTORITY_SYSTEM
xenomorph писал(а):Многоуважаемый Ари ... тьфу, ANDLL!
Даваёте по-существу - или никак ... ОК?
--
Эффекта и от этой я не вижу. Ни писка ни крика ни файла.
(может я чёт-то не так делаю -
у кого пашет? откликнитесь пжжжалуйста!)
--
Огромная просьба - если уже что-то выкладываете -
то протестьте хоть разок ОК?
--
Спасибо за понимание.
ProgSoldier писал(а):А на Сях или Асме? Если можно, то дайте исходничек (простенький, т. к. и в том и в другом плохо разбираюсь) ДЛЛки, которая может воспользоваться автозапуском и ещё запустить ЕХЕшник.
Заранее благодарен.
ANDLL писал(а):Замечу, что вопрос который мы рассматриваем совсем не "простенький". Поэтому никто не будет давать тебе пример "для дурака".
ANDLL писал(а):2keks-n: Родной диспетчер зада прекрасно убивает программы, запущенные под аккаунтом system. smss, winlogon и т.п. он не убивает по несколько другой причине.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58