Инжект

Тема в разделе "WASM.NT.KERNEL", создана пользователем Chun, 28 июл 2011.

  1. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    Поделитесь пожалуйста кодом инжекта длл из драйвера и кодом инжекта из приложения.

    Спасибо.
     
  2. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    http://tinyurl.com/4x4unv9
     
  3. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    код инжекта длл из драйвера никак не могу найти. советуют использовать APC для инжекта.
     
  4. phoukait

    phoukait New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2011
    Сообщения:
    43
    Нужен пользовательский поток, чтобы в его контексте исполнять код(и апк доставлять тоже). Можно попробовать потыкать UserpActivateDebugger (чтобы вручную не ковыряться в ядре, разбирая сст).
    Код (Text):
    1.     Port = ObReferenceObjectByName("\Windows\ApiPort")  ; or EPROCESS.ExceptionPort
    2.     LpcRequestWaitReplyPort(Port, UserpActivateDebugger)    ; ACTIVATEDEBUGGERMSG{}
    Тока в версиях номер сервиса меняется на 1 и структура сообщения изменялась, но это не проблема.
     
  5. expert

    expert New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2009
    Сообщения:
    151
    ищи семпл блекэнержди и реверси. или у креша спроси сырки )))
     
  6. phoukait

    phoukait New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2011
    Сообщения:
    43
    expert
    А что там такого, наверно как обычно - парсим сст, находим NtCreateThread() etc. Это унылые древние методы. Ну явно эти малвари не трассируют юзермодный код, не используют интеграцию етц. Уровень ксакепа в общем.
     
  7. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    создал проект dll библиотеку , проект собирается, но после инжекта, dll не отрабатывает, не выводит сообщение в DbgView с помощью DbgPrint.

    содержимое файла sources:

    TARGETNAME= inject
    TARGETTYPE= DYNLINK
    TARGETPATH= obj

    INCLUDES= $(DDK_INC_PATH)

    DLLENTRY= DllMain

    SOURCES= inject.cpp

    BUFFER_OVERFLOW_CHECKS= 0
    USE_NTDLL= 1

    TARGETLIBS= $(SDK_LIB_PATH)\kernel32.lib \
    $(DDK_LIB_PATH)\ntoskrnl.lib

    ----------------------------------------------------------------

    #include <ntifs.h>
    #include <windef.h>

    BOOL
    WINAPI
    DllMain(
    HINSTANCE DllInstance,
    DWORD Reason,
    LPVOID Reserved
    )
    {
    DbgPrint("Hello World!");
    return TRUE;
    }
     
  8. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    возможно, программа не находит точку входа в dll, но она указана:
    DLLENTRY= DllMain
    неправильные заголовок у функции ?
     
  9. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    У тебя при сборке модуля пользовательского режима используются такие вещи, как

    DbgPrint()
    $(DDK_INC_PATH)
    #include <ntifs.h>
    $(DDK_LIB_PATH)\ntoskrnl.lib

    Тебе не кажется это подозрительным?
    И, наконец, почему бы .dll не собирать в VS?
     
  10. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    Это пример из статьи
    http://www.rsdn.ru/article/baseserv/InjectDll.xml
     
  11. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Ну так ты его посмотрел бы повнимательнее.
    В частности, DLL там собираются с помощью ddkbuild в VS.
     
  12. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    а у вас получилось собрать с помощью ddkbuild?
     
  13. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Я даже и не пытался, мне ни к чему. Я вообще dkkbuild не пользуюсь, драйвера собираю build обычным из консоли, а пользовательские модули пишу в VS и собираю там же без каких-либо сторонних инструментов.
     
  14. Chun

    Chun New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2011
    Сообщения:
    7
    а собирать dll с использованием ntifs.h не пробовали?
    я могу использовать в dll функции windows.h и ntifs.h ?
     
  15. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Зачем?