Как выгрузить конкретную DLL из процессов

Тема в разделе "WASM.BEGINNERS", создана пользователем Agent-Buble, 28 фев 2007.

  1. Agent-Buble

    Agent-Buble New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    12
    Подскажите пожалуйста как можно выгрузить sfc_os.dll(библиоте отвечает за защиту системных файлов в NT подобных системах) из нескольки процессов. Спасибо
     
  2. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    Agent-Buble

    Для начала нужно открыть процесс, потом создать в нем удаленный поток и оттуда выгрузить либу.
    Если процесс системный, то нужно прежде всего получить отладочные привилегии.

    Вот, возьми мою старую утилку (исходники прилагаются).
    Она как раз для этих целей. Как пользоваться, думаю разберешься.

    http://webfile.ru/1329642


    А вообще есть более простые способы
    Заюзай в библиотеке sfc.dll функцию под 5м ординалом. С помощью нее можно отключить защиту системного файла на определенное время или на постой.

    !sfc.dll_<ordinal5> (-1, lpPath, 0);
    lpPath - WideCharString
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    в исходниках на васме есть.
     
  4. Agent-Buble

    Agent-Buble New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    12
    Спасибо всем
     
  5. Agent-Buble

    Agent-Buble New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    12
    Не совсем понятно что имелост ввиду... обьясни пожалуйста так как я в этом деле новичок
     
  6. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    nitrotoluol
    1. Ну вообще-то sfc.dll для Win2k а для WXP/W2k3 - sfc_os.dll
    2. Отключка на минутку.
    3. Порядок аргументов обратный.

    Agent-Buble
    Если тебя устраивает одна минута, то:

    Код (Text):
    1. typedef DWORD (* SFPEXC)(DWORD, wchar_t *, DWORD);
    2.  
    3. HMODULE sfc_os;
    4. SFPEXC psfp_exc;
    5.  
    6. sfc_os = LoadLibrary("sfc_os.dll"));
    7. psfp_exc = (SFPEXC) GetProcAddress(sfc_os, (char *)5));
    8. psfp_exc(0, L"C:\\WINDOWS\\system32\\ntoskrnl.exe", -1);
    З.Ы.
    Подробней здесь:
    hxxp://www.codeproject.com/useritems/SetSfcFileException.asp?df=100&forumid=326397&exp=0&select=1596703
     
  7. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Раз уж зашёл вопрос про WFP, то меня интересует обратный эффект - можно ли свой файл добавить в список защищаемых ? Насколько я понимаю файл должен быть подписан Microsoft'ом и поэтому ничего не получится, но всё же.
     
  8. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    DelExe
    Лол! :) Для совместимости в sfc.dll стоят джампы на sfc_os.dll
    Посмотри под отладчиком или дизасмом.
    Поэтому так мы просто избавляемся от необходимости теста версий.

    Если после удалить файл с кэша - то на постой.

    Согласен. Просто я с головы писал, поэтому забыл слегка.... Каюсь :)


    roman_pro
    Можно.
    Нужно:
    1. Подписать файл
    2. Кэшировать
    3. Добавить в список защищаемых
    Где-то у меня код валялся....