Вопрос тупой, ламерский) Мне нужен загрузчик DLL, тоже DLL, практически то же самое что хардлинк, но только реальный файл. Проблема в том что надо загружать файл который где-то находится... он должен быть во вложенных папках итд, поэтому нельзя просто его взять и положить куда надо) Вобщем надо его зацепить удалённо. Наверное всё зависит от содержания DLL или есть универсальный способ? И, кстати, я не очень понимаю что такое линк, это тоже файл? Его можно скажем в архиве передать другому? Я именно поэтому не хочу с линками связываться... причём линк всегда жёстко куда-то указывает, а в файле можно чтонибудь относительно указать через переменную. Хотя линк можно програмно тоже создавать используя переменную)
https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexa https://learn.microsoft.com/en-us/w...rapi/nf-libloaderapi-setdefaultdlldirectories
Перепиши lwe(loader wrapper engine) двиг на свой манер, была трабла с защитой w10. Эмуляция образа для нтлдр.
Nexus.dll (который хардлинк) Код (Text): format PE64 DLL include '%fasm%/win64ax.inc' section '.code' executable start: sub rsp,8 invoke LoadLibraryEx,'C:\Nexus.dll',NULL,0x00000008+0x00000020 exit: invoke ExitProcess,NULL section '.idata' import readable library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL',shlwapi,'SHLWAPI.DLL',user32,'USER32.DLL' include '%fasm%/api/kernel32.inc' include '%fasm%/api/shell32.inc' include '%fasm%/api/shlwapi.inc' include '%fasm%/api/user32.inc' Наверное у меня не получится) Может там stub проверяется програмой хост) Я как обычно гружу скажем в Cubase модуль VST2 DLL. Изучать VST - это тогда легче свой модуль написать. Мне бы просто его залинковать, в этом суть вопроса. Хотя я вроде встречал такие dll которые загружают залинковывают настоящий vst/dll модуль. И у хакеров и у производителей редко, но встречалось. Всмысле я не в своё приложение загружаю ДЛЛ мне только shorcut надо сделать. Хе-хе, а ExitProcess вообще нужен в библиотеке? Или чёнить там хендл закрывать)
> ExitProcess вообще нужен Нужен был, EP вызывается как процедура, при возврате нэйтив сам все завершит. Но в младших версиях системы без импорта этой апи вроде загрузка не проходила.
Не помню версию, всегда вставлялся вызов ExitProcess. Может это и с аверами связано. Что мешает выяснить ? --- Сообщение объединено, 18 июл 2025 --- Надстройку(lwe) я разбирал помню на кл, но там поиск безуспешен. Может у вас получится.
xor sp, sp int Можно так завершиться, ядро если не может прокинуть фаулт в юзер(невалид стек), скипнет процесс.
Эта апи завершает работу процесса, я хз даже, если и нужен то чтобы предоставить пользователю этой длл незабываемые минуты в отладчике, в поисках почему же процесс внезапно сдох.
M0rg0t Синхронное завершение, как положено с нотифи, зачистки всякие это сомнительной надобности. При завершении удерживать загрузчик, что бы из него послать ipc сообщение и не попасть на деадлок, так можно в нэйтив сделать. Это грубейший кривой метод, разве годится для отладки, какой стектрейс сдампить, обозначив место крэша. Отменить завершение, реинит нельзя легально выполнить, подобно как и выгружать ядерные образы.