Автозапуск DLL из реестра

Тема в разделе "WASM.BEGINNERS", создана пользователем assorted, 25 окт 2006.

  1. assorted

    assorted New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    227
    Пытаюсь загрузить из реестра свою dll

    вот код

    proc DllEntryPoint hinstDLL,fdwReason,lpvReserved


    invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK
    mov eax,TRUE
    ret
    endp



    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\mydll]
    "DLLName"="mydll"
    "Startup"="on_load"
    "Asynchronous"=dword:00000001

    положил ее в system32

    Я ожидал увидеть месседж бокс при перезагрузке.

    1) Почему не заработало?
    2) планировал в DllEntryPoint добавить зацикленый код типа

    L:
    Sleep,5000
    jmp L

    Будет работать?
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Не стоит вызывать MessageBox из DllMain. Твоя библиотека не загрузится. Система даёт определённое время на выполнение DllMain, если не уложишся в это время-Dll не будет загружена. Так что не чтоит вызывать тормозных функций типа MessageBox, и делать задержки в DllMain. Примерно так.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    DLLName на .dll не должно заканчиваться?
    И в on_load не пробовал MessageBoxA засунуть?
     
  4. assorted

    assorted New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    227
    >>Система даёт определённое время на выполнение DllMain, если не уложишся в это >>время-Dll не будет загружена
    asd, специально делал Sleep,5000 в DllMain, все грузится (правда не из реестра как мне нужно, а просто из исполняемого модуля DLL гружу).
    Вот для дайвера - где то читал что по времени критично.

    n0name, ты прав - моя невнимательность. надо было "DLLName"="mydll.DLL"
    Только вот система совсем грузиться перестала 8(( Надо теперь с ливсиди WIN_PE чинить.

    Не могу понять из Экспортируемой функции описнаой как Startup в реестре я обязательно должен делать RET?
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    конечно.
    Если тебе надо чтоб код испольнялся некоторое время и не тормозил систему, то лучше помещай его в поток.