Загрузчик DLL

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 18 июл 2025.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    848
    Вопрос тупой, ламерский) Мне нужен загрузчик DLL, тоже DLL, практически то же самое что хардлинк, но только реальный файл.
    Проблема в том что надо загружать файл который где-то
    находится... он должен быть во вложенных папках итд, поэтому нельзя просто его взять и положить куда надо) Вобщем надо его зацепить удалённо. Наверное всё зависит от содержания DLL или есть универсальный способ?
    И, кстати, я не очень понимаю что такое линк, это тоже файл? Его можно скажем в архиве передать другому? Я именно поэтому не хочу с линками связываться... причём линк всегда жёстко куда-то указывает, а в файле можно чтонибудь относительно указать через переменную.

    Хотя линк можно програмно тоже создавать используя переменную)
     
  2. MaKsIm

    MaKsIm Active Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    223
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.223
  4. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    602
    Перепиши lwe(loader wrapper engine) двиг на свой манер, была трабла с защитой w10. Эмуляция образа для нтлдр.
     
    Semiono нравится это.
  5. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    848
    Nexus.dll (который хардлинк)
    Код (Text):
    1. format PE64 DLL
    2. include '%fasm%/win64ax.inc'
    3. section '.code' executable
    4. start:
    5.         sub rsp,8
    6.  
    7.         invoke LoadLibraryEx,'C:\Nexus.dll',NULL,0x00000008+0x00000020
    8. exit:
    9.         invoke ExitProcess,NULL
    10.  
    11. section '.idata' import readable
    12.  
    13.         library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL',shlwapi,'SHLWAPI.DLL',user32,'USER32.DLL'
    14.         include '%fasm%/api/kernel32.inc'
    15.         include '%fasm%/api/shell32.inc'
    16.         include '%fasm%/api/shlwapi.inc'
    17.         include '%fasm%/api/user32.inc'
    Наверное у меня не получится) Может там stub проверяется програмой хост)
    Я как обычно гружу скажем в Cubase модуль VST2 DLL. Изучать VST - это тогда легче свой модуль написать. Мне бы просто его залинковать, в этом суть вопроса.
    Хотя я вроде встречал такие dll которые загружают залинковывают настоящий vst/dll модуль. И у хакеров и у производителей редко, но встречалось.

    Всмысле я не в своё приложение загружаю ДЛЛ :russian: мне только shorcut надо сделать.

    Хе-хе, а ExitProcess вообще нужен в библиотеке? Или чёнить там хендл закрывать)
     
    Последнее редактирование: 18 июл 2025
  6. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    602
    > ExitProcess вообще нужен

    Нужен был, EP вызывается как процедура, при возврате нэйтив сам все завершит. Но в младших версиях системы без импорта этой апи вроде загрузка не проходила.
     
    Semiono нравится это.
  7. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    610
    win95?
     
  8. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    602
    Не помню версию, всегда вставлялся вызов ExitProcess. Может это и с аверами связано. Что мешает выяснить ?
    --- Сообщение объединено, 18 июл 2025 ---
    Надстройку(lwe) я разбирал помню на кл, но там поиск безуспешен. Может у вас получится.
     
    Последнее редактирование: 18 июл 2025
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.223
    Ahimov,
    ExitProcess --> kernel.dll обертка над RtlExitUserProcess --> ntdll.dll
     
    Semiono нравится это.
  10. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    602
    xor sp, sp
    int

    Можно так завершиться, ядро если не может прокинуть фаулт в юзер(невалид стек), скипнет процесс.
     
  11. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.649
    Эта апи завершает работу процесса, я хз даже, если и нужен то чтобы предоставить пользователю этой длл незабываемые минуты в отладчике, в поисках почему же процесс внезапно сдох.
     
  12. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    602
    M0rg0t

    Синхронное завершение, как положено с нотифи, зачистки всякие это сомнительной надобности. При завершении удерживать загрузчик, что бы из него послать ipc сообщение и не попасть на деадлок, так можно в нэйтив сделать. Это грубейший кривой метод, разве годится для отладки, какой стектрейс сдампить, обозначив место крэша. Отменить завершение, реинит нельзя легально выполнить, подобно как и выгружать ядерные образы.