Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

KernelMode Esp

  • Автор темы Автор темы s0ftic
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
27 Окт 2019
Сообщения
83
Реакции
19
тайп дефы функций
C:
Expand Collapse Copy
typedef HBRUSH(*GdiSelectBrush_t)(_In_ HDC     hdc,_In_ HBRUSH     hbr);
typedef BOOL(*PatBlt_t)(_In_     HDC,_In_ int x,_In_ int y,_In_ int w,_In_ int h,_In_     DWORD);
typedef HDC(*NtUserGetDC_t)(HWND hWnd);
typedef HBRUSH(*NtGdiCreateSolidBrush_t)(_In_ COLORREF     crColor,_In_opt_ HBRUSH     hbr);
typedef int (*ReleaseDC_t)(HDC hdc);
typedef BOOL(*DeleteObjectApp_t)(HANDLE hobj);

код инициализации
C++:
Expand Collapse Copy
    GdiSelectBrush = (GdiSelectBrush_t)get_system_module_export(L"win32kfull.sys", "NtGdiSelectBrush");
    NtGdiCreateSolidBrush = (NtGdiCreateSolidBrush_t)get_system_module_export(L"win32kfull.sys", "NtGdiCreateSolidBrush");
    NtGdiPatBlt = (PatBlt_t)get_system_module_export(L"win32kfull.sys", "NtGdiPatBlt");
    NtUserGetDC = (NtUserGetDC_t)get_system_module_export(L"win32kbase.sys", "NtUserGetDC");
    NtUserReleaseDC = (ReleaseDC_t)get_system_module_export(L"win32kbase.sys", "NtUserReleaseDC");
    NtGdiDeleteObjectApp = (DeleteObjectApp_t)get_system_module_export(L"win32kbase.sys", "NtGdiDeleteObjectApp");

код создания фрейма
C++:
Expand Collapse Copy
INT FrameRect(HDC hDC, CONST RECT* lprc, HBRUSH hbr, int thickness)
{
    HBRUSH oldbrush;
    RECT r = *lprc;

    if (!(oldbrush = GdiSelectBrush(hDC, hbr))) return 0;

    NtGdiPatBlt(hDC, r.left, r.top, thickness, r.bottom - r.top, PATCOPY);
    NtGdiPatBlt(hDC, r.right - thickness, r.top, thickness, r.bottom - r.top, PATCOPY);
    NtGdiPatBlt(hDC, r.left, r.top, r.right - r.left, thickness, PATCOPY);
    NtGdiPatBlt(hDC, r.left, r.bottom - thickness, r.right - r.left, thickness, PATCOPY);

    GdiSelectBrush(hDC, oldbrush);
    return TRUE;
}

сам рендер бокса
C++:
Expand Collapse Copy
HDC hdc = NtUserGetDC(NULL);
        if (!hdc)
            return STATUS_UNSUCCESSFUL;

        HBRUSH brush = NtGdiCreateSolidBrush(RGB(instructions->r, instructions->g, instructions->b), NULL);
        if (!brush)
            return STATUS_UNSUCCESSFUL;

        RECT rect = { instructions->x, instructions->y, instructions->x + instructions->w, instructions->y + instructions->h };
        FrameRect(hdc, &rect, brush, instructions->t);
        NtUserReleaseDC(hdc);
        NtGdiDeleteObjectApp(brush);

photo_2022-01-25_16-26-04.jpg
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
с GDI можно ахуеть от дропов фпс оверлея и самой игры
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
GDI да хороший метод так как УД на данный момент но сука рендеришь много объектов получаешь фпс низкий настолько что сидишь и ахуеваешь
 
да, а шо не так?
А то что ты даже не указал автора, просто спиздил всю инфу.

Неужели так сложно оверлей заебашить в юм? В паблике куча инфы как сделать уд оверлей, да и получится он не на обосанном gdi.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
/del
 
Последнее редактирование:
нет смысла делать gdi рисовку, если твой чит всё еще находится в юзермоде
почему? потому что и так есть тысяча путей "безопасно" рисовать в юм
 
А то что ты даже не указал автора, просто спиздил всю инфу.

Неужели так сложно оверлей заебашить в юм? В паблике куча инфы как сделать уд оверлей, да и получится он не на обосанном gdi.
1. с чего ты взял что мне сложно сделать юзермод оверлей?
Снимок.PNG

2. не факт что EAC не детектит такие функции FindWindowA... , по этому стоит юзать нт функу причем желательно из под ядра
Снимок2.PNG

3. под этажом, если в твоей пасте 1 юзер то оверлей это неплохой выход.
 
1. с чего ты взял что мне сложно сделать юзермод оверлей?

2. не факт что EAC не детектит такие функции FindWindowA... , по этому стоит юзать нт функу причем желательно из под ядра

3. под этажом, если в твоей пасте 1 юзер то оверлей это неплохой выход.
Получить дескриптор окна можно и без FindWindow. Смысл от зарисовки в кернел, если можно всё сделать в юм? Даже некоторые паблик оверлеи андетект, проверено (и проверено точно).
 
Назад
Сверху Снизу