GameGuard защита от дампа процесса

Тема в разделе "WASM.RESEARCH", создана пользователем soveren, 19 апр 2008.

  1. soveren

    soveren Дмитрий Петерсон

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    94
    Адрес:
    Россия
    Здравствуйте.

    Кто-нибудь пробовал это обходить?

    Авторы перехватили кучу функций в ядре и пользовательском режиме и всячески не дают сдампить защищенный процесс.

    Спасибо.
     
  2. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Можно попробовать extreme dumper из PEtools
     
  3. Joes

    Joes New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    98
    Загрузить в x64 и сделать так, что бы в твоем процессе дампера API осталось непохуканым.
    Это потому, что в x64 есть PatchGuard и GG не хукает API.
     
  4. soveren

    soveren Дмитрий Петерсон

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    94
    Адрес:
    Россия
    twgt
    Он не поможет.

    Перехвачены все сплайсингом

    KiAttachProcess
    KiMoveApcState
    KeAttachProcess
    KeStackAttachProcess

    Таблица сервисов
    NtReadVirtualMemory
    NtWriteVirtualMemory
    NtDeviceIoControlFile
    NtOpenProcess
    NtOpenSection
    NtProtectVirtualMemory

    Таблица Win32k.sys
    NtUserSendInput

    Снятие любого из них приводит к немедленному синему экрану драйвером защиты.

    Кроме этого во все процессы внедляется длл и перехватывает в каждом ещё кучу функций ntdll, user32, kernel32, gdi32

    Не думаете же вы, что придется воспроизвести всю процедуру переключения контекста :dntknw:

    Программа не будет работать в x64.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Получить оригинальный адрес NtReadVirtualMemory.
    Получить хендл процесса тоже не проблема.
     
  6. soveren

    soveren Дмитрий Петерсон

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    94
    Адрес:
    Россия
    Здравствуйте n0name.

    Это не получиться, потому что протектор перехватил KeAttachProcess и фильтрует все запросы. Либо возвращаемый в пользовательский режим буфер.
     
  7. Joes

    Joes New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    98
    В смысле не будет работать под х64? Игры, насколько я знаю, почти все работают и GG успешно работает в х64 тоже.
     
  8. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    буйня, просто не снимая сплайсинг сэмуль схученные инструкции, и все сверка с образом на диске патом спакойно
    через свой дров заберёшь образ с памяти и мучай его скока угодно
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    можно еще свое ядро подгрузить.
     
  10. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    загрузись дллкой в процесс, который нужно сдампить, можно через SetWindowsHookEx или просто пропиши Appinit_dlls ну и в ней уже все сдампь. Методов куча, главное не зацикливаться на хуках и не пытаться их снять.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Точно, а ещё проще приаттачится на уровне инструкций(lldt).
     
  12. soveren

    soveren Дмитрий Петерсон

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    94
    Адрес:
    Россия
    Joes
    Мне это нужно под Win32, причем в runtime.

    seeQ
    Это невозможно. Процесс протектора скрыт. Все явные методы подгрузки длл перекрыты, см. верхний пост.

    sl0n
    Я решил проблему немного поиграв с CR3 :)
    Но тут же наткнулся на проверку протом буфера, возвращаемого в пользовательский режим (перехват NtDeviceIoControlFile). Проблема с проверкой буфера решена его шифрованием в драйвере и расшифровкой по маленьким кускам (иначе обнаружит, представляете себе) в пользовательском режиме. Однако GameGuard видимо немного удивился подобному и спешно выпал сразу после удачного дампа, причем аккуратно сняв весь лес этих перехватов. Кроме того он инжектит какую-то нехорошую нитку в процессы, включая процесс-дампер, и её нельзя терминировать из пользовательского режима... Забыл добавить, что отдельные драйверы этого комплекса перехватывают также IDT, видимо для усложнения отладки.

    В общем, это просто настоящий руткитище =)
     
  13. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    в том то и дело, что методов немеряно, можно сделать wrapper какой нибуть используемой исследуемым процессом дллки, ну или на крйняк пропатчить kernel32.dll что б она загрузила dumper.dll
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    soveren
    а что тебе мешает подправить сам драйвер защиты??
     
  15. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    девелоперы антидампов ещё верят в силу своих высеров? =))))))