[GMOD C++] Screengrab bypass

⭐ONEHACK⭐
Начинающий
Статус
Оффлайн
Регистрация
22 Фев 2019
Сообщения
70
Реакции[?]
16
Поинты[?]
0
Ребят делаю чит под GMOD на плюсах, использую ISurface для отрисовки чамсов, но вот задача, сделал байпас от обычных стимовских скриншотов,
а как сделать байпас того же render.Capture, я хз как,хелпаните кто может!
 
Пользователь
Статус
Оффлайн
Регистрация
31 Дек 2018
Сообщения
481
Реакции[?]
140
Поинты[?]
3K
if (!GetAsyncKeyState(VK_SNAPSHOT) && !GetAsyncKeyState(VK_F12)) {
dxRenderer.OnEndScene();
}
Профессиональный байпас скриншотов
 
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ребят делаю чит под GMOD на плюсах, использую ISurface для отрисовки чамсов, но вот задача, сделал байпас от обычных стимовских скриншотов,
а как сделать байпас того же render.Capture, я хз как,хелпаните кто может!
Его нужно хукнуть и изменить параметры
 
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2019
Сообщения
1,461
Реакции[?]
502
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
using ReadPixels_t = void (__thiscall *)( IMatRenderContext *ecx, uintptr_t edx, int x, int y, int w, int h, uint8_t *data, int dst );
 
//
// hooked func
//
VMTHook render_context_VMT( g_render_context );
 
void __fastcall ReadPixels( IMatRenderContext *ecx, uintptr_t edx, int x, int y, int w, int h, uint8_t *data, int dst ) {
    CViewSetup setup;
 
    // some return inside the rendercapture C++ func
    // return will be the next instruction
    if( (uintptr_t)_ReturnAddress() == g_rendercapture_ret ) {
        // notify client handler
        // just to be safe... maybe stop rendering your visuals
        g_cheat.screengrab = true;
 
        // clear screen backbuffer
        ecx->ClearBuffers( true, true, true );
 
        // render a new frame to the backbuffer
        g_chlclient->GetPlayerView( setup );
        g_chlclient->RenderView( setup, ( VIEW_CLEAR_COLOR | VIEW_CLEAR_DEPTH ), ( RENDERVIEW_DRAWVIEWMODEL | RENDERVIEW_DRAWHUD ) );
 
        g_cheat.screengrab = false;
    }
 
    render_context_VMT.get_old_func< ReadPixels_t >( 11 )( ecx, x, y, w, h, data, dst );
}
 
render_context_VMT.hook( 11, &ReadPixels );
 
⭐ONEHACK⭐
Начинающий
Статус
Оффлайн
Регистрация
22 Фев 2019
Сообщения
70
Реакции[?]
16
Поинты[?]
0
C++:
using ReadPixels_t = void (__thiscall *)( IMatRenderContext *ecx, uintptr_t edx, int x, int y, int w, int h, uint8_t *data, int dst );

//
// hooked func
//
VMTHook render_context_VMT( g_render_context );

void __fastcall ReadPixels( IMatRenderContext *ecx, uintptr_t edx, int x, int y, int w, int h, uint8_t *data, int dst ) {
    CViewSetup setup;

    // some return inside the rendercapture C++ func
    // return will be the next instruction
    if( (uintptr_t)_ReturnAddress() == g_rendercapture_ret ) {
        // notify client handler
        // just to be safe... maybe stop rendering your visuals
        g_cheat.screengrab = true;

        // clear screen backbuffer
        ecx->ClearBuffers( true, true, true );

        // render a new frame to the backbuffer
        g_chlclient->GetPlayerView( setup );
        g_chlclient->RenderView( setup, ( VIEW_CLEAR_COLOR | VIEW_CLEAR_DEPTH ), ( RENDERVIEW_DRAWVIEWMODEL | RENDERVIEW_DRAWHUD ) );

        g_cheat.screengrab = false;
    }

    render_context_VMT.get_old_func< ReadPixels_t >( 11 )( ecx, x, y, w, h, data, dst );
}

render_context_VMT.hook( 11, &ReadPixels );
Видел это на UK, но чтобы я не делал, это не работает на моём исходнике Free The Skinds (GSDK)
 
Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2019
Сообщения
1,461
Реакции[?]
502
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Видел это на UK, но чтобы я не делал, это не работает на моём исходнике Free The Skinds (GSDK)
эта сигнатура устаревшая? uintptr_t g_rendercapture_ret = sigscan( "client.dll", "6A 20 8D 4D B8" );
 
⭐ONEHACK⭐
Начинающий
Статус
Оффлайн
Регистрация
22 Фев 2019
Сообщения
70
Реакции[?]
16
Поинты[?]
0
⭐ONEHACK⭐
Начинающий
Статус
Оффлайн
Регистрация
22 Фев 2019
Сообщения
70
Реакции[?]
16
Поинты[?]
0
Ладненько, спасибо всем за участие, я решил проблему другим путем, перенес все на imgui
 
Начинающий
Статус
Оффлайн
Регистрация
31 Янв 2020
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Слишком много гемороя имхо, просто захукай void CHLClient::View_Render( vrect_t *rect ) , актуальный индекс 26.
Ищи на UC ( Perfect Anti-Screenshot ), от 1Lee.
 
⭐ONEHACK⭐
Начинающий
Статус
Оффлайн
Регистрация
22 Фев 2019
Сообщения
70
Реакции[?]
16
Поинты[?]
0
Сверху Снизу