Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выгрузка длл 
:(
    Опции темы
0x00
  Дата 20.4.2008, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



как выгрузить длл из чужого процесса?
примеру буду только рад))
PM MAIL   Вверх
W4FhLF
Дата 20.4.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Инжект шеллкода(OpenProcess + WriteProcessMemory) и его выполнение(CreateRemoteThread). Пример есть только на ассемблере)


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
586
Дата 20.4.2008, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Можно проще... Вызывать FreeLibrary в другом процессе напрямую, а базовый адрес модуля узнавать с помощью CreateToolhelpSnapshot TH32CS_SNAPMODULE.
Код
CreateRemoteThread(..., GetProcAddress(GetModuleHandle("kernel32.dll"), "FreeLibrary"), module_base, ...)


Это сообщение отредактировал(а) 586 - 21.4.2008, 13:24
PM   Вверх
0x00
  Дата 21.4.2008, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



ок. вроде сделал.. просто в контексте чужого процесса FreeLibrary делать и все.....

Код

BOOL InjectCode(DWORD dwPid, LPTHREAD_START_ROUTINE lpStartProc, LPVOID lpParam){

    HMODULE                    hModule;
    LPVOID                    hNewModule;
    DWORD                    dwSize;
    HANDLE                    hProcess;
    IMAGE_DOS_HEADER        ImageDosHeader;
    IMAGE_OPTIONAL_HEADER32    ImageOptionalHeader;

    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);
    if(hProcess == NULL){
        // MessageBox(0, "Process opening ERROR.", "System ERROR", 0);
        return FALSE;
    }
    hModule = GetModuleHandle(NULL);
    CopyMemory(&ImageDosHeader, hModule, sizeof(ImageDosHeader));
    CopyMemory(&ImageOptionalHeader, ((BYTE *)hModule + sizeof(DWORD) + ImageDosHeader.e_lfanew + sizeof(IMAGE_FILE_HEADER)), sizeof(ImageOptionalHeader));
    dwSize = ImageOptionalHeader.SizeOfImage;
    VirtualProtectEx(hProcess, hModule, dwSize, PAGE_EXECUTE_READWRITE, NULL);

    #pragma check_stack(off)
    hNewModule = VirtualAllocEx(hProcess, hModule, dwSize, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    if(hNewModule == NULL){
        MessageBox(0, "Memory allocation ERROR.", "System ERROR", 0); // <- ! AHTUNG !
        return FALSE;
    }
    WriteProcessMemory(hProcess, hNewModule, hModule, dwSize, NULL);
    CreateRemoteThread(hProcess, NULL, 0x1000, lpStartProc, NULL, 0, NULL);
    #pragma check_stack(on)

return TRUE;
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1216 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.