LUA скрипт [GS] убираем консоль патчера

Участник
Участник
Статус
Оффлайн
Регистрация
4 Мар 2021
Сообщения
1,241
Реакции
300
заебала меня эта шалупонь постоянно вылазит когда не просят
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
local ffi = require("ffi")
ffi.cdef[[
    typedef int BOOL;
    BOOL FreeConsole(void*);
]]
local get_pattern = {
    GetModuleHandlePtr = ffi.cast("void***", ffi.cast("uint32_t", client.find_signature("engine.dll", "\xFF\x15\xCC\xCC\xCC\xCC\x85\xC0\x74\x0B")) + 2)[0][0],
    GetProcAddressPtr = ffi.cast("void***", ffi.cast("uint32_t", client.find_signature("engine.dll", "\xFF\x15\xCC\xCC\xCC\xCC\xA3\xCC\xCC\xCC\xCC\xEB\x05")) + 2)[0][0],
    reinterpret_cast = function(addr, typestring)
        return function(...) return ffi.cast(typestring, client.find_signature("engine.dll", "\xFF\xE1"))(addr, ...) end
    end,
}

do
    get_pattern.fnGetModuleHandle = get_pattern.reinterpret_cast(get_pattern.GetModuleHandlePtr, "void*(__thiscall*)(void*, const char*)")
    get_pattern.fnGetProcAddress = get_pattern.reinterpret_cast(get_pattern.GetProcAddressPtr, "void*(__thiscall*)(void*, void*, const char*)")
    get_pattern.GetModuleHandle = get_pattern.fnGetModuleHandle
    get_pattern.GetProcAddress = get_pattern.fnGetProcAddress

    get_pattern.lib = { kernel32 = get_pattern.GetModuleHandle("kernel32.dll") }
    get_pattern.export = {
        kernel32 = {
            FreeConsole = get_pattern.reinterpret_cast(get_pattern.GetProcAddress(get_pattern.lib.kernel32, "FreeConsole"), "BOOL(__thiscall*)(void*)"),
        }
    }
end
get_pattern.export.kernel32.FreeConsole()
 
заебала меня эта шалупонь постоянно вылазит когда не просят
Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:
Expand Collapse Copy
local ffi = require("ffi")
ffi.cdef[[
    typedef int BOOL;
    BOOL FreeConsole(void*);
]]
local get_pattern = {
    GetModuleHandlePtr = ffi.cast("void***", ffi.cast("uint32_t", client.find_signature("engine.dll", "\xFF\x15\xCC\xCC\xCC\xCC\x85\xC0\x74\x0B")) + 2)[0][0],
    GetProcAddressPtr = ffi.cast("void***", ffi.cast("uint32_t", client.find_signature("engine.dll", "\xFF\x15\xCC\xCC\xCC\xCC\xA3\xCC\xCC\xCC\xCC\xEB\x05")) + 2)[0][0],
    reinterpret_cast = function(addr, typestring)
        return function(...) return ffi.cast(typestring, client.find_signature("engine.dll", "\xFF\xE1"))(addr, ...) end
    end,
}

do
    get_pattern.fnGetModuleHandle = get_pattern.reinterpret_cast(get_pattern.GetModuleHandlePtr, "void*(__thiscall*)(void*, const char*)")
    get_pattern.fnGetProcAddress = get_pattern.reinterpret_cast(get_pattern.GetProcAddressPtr, "void*(__thiscall*)(void*, void*, const char*)")
    get_pattern.GetModuleHandle = get_pattern.fnGetModuleHandle
    get_pattern.GetProcAddress = get_pattern.fnGetProcAddress

    get_pattern.lib = { kernel32 = get_pattern.GetModuleHandle("kernel32.dll") }
    get_pattern.export = {
        kernel32 = {
            FreeConsole = get_pattern.reinterpret_cast(get_pattern.GetProcAddress(get_pattern.lib.kernel32, "FreeConsole"), "BOOL(__thiscall*)(void*)"),
        }
    }
end
get_pattern.export.kernel32.FreeConsole()
нахуя делать это луашкой если можно пропатчить одну строку в дллке?
 
нахуя делать это луашкой если можно пропатчить одну строку в дллке?
знаю. это ещё один вариант.
тем более он опциональный. пропатчив длл ты скорее всего просто нопниш консол аллокейт или джампнешь сразу к крейттриду
 
ну такое себе решение...
не спорю, оно хорошее, но при каждом запуске... если в какой-то проект добавить, то оки всё будет
 
одну строку в дллке
1745782600184.png

ну не одну конечно, но это я занопил просто
 
Назад
Сверху Снизу