KernelMode Esp

Начинающий
Статус
Оффлайн
Регистрация
27 Окт 2019
Сообщения
83
Реакции[?]
19
Поинты[?]
0
тайп дефы функций
C:
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++:
    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++:
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++:
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
 
Забаненный
Статус
Оффлайн
Регистрация
22 Апр 2020
Сообщения
731
Реакции[?]
752
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
с GDI можно ахуеть от дропов фпс оверлея и самой игры
 
Забаненный
Статус
Оффлайн
Регистрация
4 Янв 2022
Сообщения
57
Реакции[?]
8
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
GDI да хороший метод так как УД на данный момент но сука рендеришь много объектов получаешь фпс низкий настолько что сидишь и ахуеваешь
 
Участник
Статус
Оффлайн
Регистрация
15 Дек 2018
Сообщения
1,081
Реакции[?]
213
Поинты[?]
0
да, а шо не так?
А то что ты даже не указал автора, просто спиздил всю инфу.

Неужели так сложно оверлей заебашить в юм? В паблике куча инфы как сделать уд оверлей, да и получится он не на обосанном gdi.
 
#include <brain>
Забаненный
Статус
Оффлайн
Регистрация
29 Сен 2020
Сообщения
588
Реакции[?]
99
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
/del
 
Последнее редактирование:
smoking on that #pragma pack
Пользователь
Статус
Оффлайн
Регистрация
10 Янв 2018
Сообщения
325
Реакции[?]
96
Поинты[?]
1K
нет смысла делать gdi рисовку, если твой чит всё еще находится в юзермоде
почему? потому что и так есть тысяча путей "безопасно" рисовать в юм
 
Начинающий
Статус
Оффлайн
Регистрация
27 Окт 2019
Сообщения
83
Реакции[?]
19
Поинты[?]
0
А то что ты даже не указал автора, просто спиздил всю инфу.

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

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

3. под этажом, если в твоей пасте 1 юзер то оверлей это неплохой выход.
 
Участник
Статус
Оффлайн
Регистрация
15 Дек 2018
Сообщения
1,081
Реакции[?]
213
Поинты[?]
0
1. с чего ты взял что мне сложно сделать юзермод оверлей?

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

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