Другое С/С++ Вопрос - Ответ

papercut

Известный
104
17
Харош велосипеды придумывать, все за вас придумали уже

Гайд и ридми пора подправить, после обновы *Nov 21, 2021* даже такого конструктора kthook_simple_t нету.
Поставил версию от 11 ноября 21, все работает
300px-The_Engineer.jpg
 
  • Ха-ха
Реакции: sizeoftrickster и Z3roKwq

eze

Известный
14
1
1.Как можно сделать авто обновление exe файла любыми возможными методами
 

sizeoftrickster

Известный
Проверенный
139
558
Гайд и ридми пора подправить, после обновы *Nov 21, 2021* даже такого конструктора kthook_simple_t нету.
Поставил версию от 11 ноября 21, все работает
300px-The_Engineer.jpg
К вашему вниманию несколько видов защиты:
1) скачать и закинуть в папки: ktsignal и xbyak [Уровень: hard]
2) подключить к проекту [Уровень: easy]
И последнее, самое сложное! Когда просто скопировать не получится, нужно будет разбираться и искать нужное тебе через намеспасе) [Уровень: insane]
 
  • Нравится
Реакции: Savchik Blazer

papercut

Известный
104
17
К вашему вниманию несколько видов защиты:
1) скачать и закинуть в папки: ktsignal и xbyak [Уровень: hard]
2) подключить к проекту [Уровень: easy]
И последнее, самое сложное! Когда просто скопировать не получится, нужно будет разбираться и искать нужное тебе через намеспасе) [Уровень: insane]
Вместо того, чтобы умничать, могли бы объяснить как работают новые хуки, про которые ни слова нигде не написано. В readme и "гайде" описаны методы, которые были больше года назад актуальны.
Вместо методов из примера есть set_cb, который чтобы использовать, надо преисполнится в плюсах. Код с reset remove, выглядит как заклинание, написанное insane'ом(безумцем)
C++:
window_init_hook.set_cb([this](const auto& hook, auto&& hinst)
Я, конечно, понимаю, что лямбда функции это супер удобно. Но вариант из гайда явно проще и понятнее. А объяснение почему функция принимает ссылку на хук и, как я понимаю, ссылку на ссылку на адрес ,который указан при инициализации хука?
 

AdCKuY_DpO4uLa

Адский дрочер
Друг
315
665
Вместо того, чтобы умничать, могли бы объяснить как работают новые хуки, про которые ни слова нигде не написано. В readme и "гайде" описаны методы, которые были больше года назад актуальны.
Вместо методов из примера есть set_cb, который чтобы использовать, надо преисполнится в плюсах. Код с reset remove, выглядит как заклинание, написанное insane'ом(безумцем)
C++:
window_init_hook.set_cb([this](const auto& hook, auto&& hinst)
Я, конечно, понимаю, что лямбда функции это супер удобно. Но вариант из гайда явно проще и понятнее. А объяснение почему функция принимает ссылку на хук и, как я понимаю, ссылку на ссылку на адрес ,который указан при инициализации хука?
если тебе нужен пример того, как ставить хуки, то вот, когда-то че-то хукал, не помню когда и что, мейби разберешься
C++:
kthook::kthook_simple<unsigned __int8** (__fastcall*)(unsigned __int64*)> unkHook{};
unsigned __int8** __fastcall Unk_HOOKED(const decltype(unkHook)&hook, unsigned __int64* param_1) {

    printf("0x%llX\n", (std::uintptr_t)param_1);

    return hook.get_trampoline()(param_1);
}
//install
std::uintptr_t UnkAddrHook = 0x10B1B60;
unkHook.set_dest(UnkAddrHook);
unkHook.set_cb(&Unk_HOOKED);
unkHook.install();
 
  • Клоун
  • Вау
Реакции: Fott и Z3roKwq

papercut

Известный
104
17
если тебе нужен пример того, как ставить хуки, то вот, когда-то че-то хукал, не помню когда и что, мейби разберешься
C++:
kthook::kthook_simple<unsigned __int8** (__fastcall*)(unsigned __int64*)> unkHook{};
unsigned __int8** __fastcall Unk_HOOKED(const decltype(unkHook)&hook, unsigned __int64* param_1) {

    printf("0x%llX\n", (std::uintptr_t)param_1);

    return hook.get_trampoline()(param_1);
}
//install
std::uintptr_t UnkAddrHook = 0x10B1B60;
unkHook.set_dest(UnkAddrHook);
unkHook.set_cb(&Unk_HOOKED);
unkHook.install();
Спасибо. Сделал, правда, уже по твоему гайду через sdk и samp api.

Вопрос: Как зафорсить отправку синхронизации, которая отправляется при открытии скорборда? Как я понимаю, это RPC_UpdateScoresPingsIPs. Но мне нужно именно зафорсить чтобы сама игра отправила этот рпк(если это рпк) и сама заполнила значениями все пулы. Иначе пока игрок не откроет таб, у всех 0 лвл.
 

al3x_

Известный
125
1,084
Вопрос: Как зафорсить отправку синхронизации, которая отправляется при открытии скорборда? Как я понимаю, это RPC_UpdateScoresPingsIPs. Но мне нужно именно зафорсить чтобы сама игра отправила этот рпк(если это рпк) и сама заполнила значениями все пулы. Иначе пока игрок не откроет таб, у всех 0 лвл.
C++:
reinterpret_cast<void(__thiscall*)(void*)>(samp.dll + 0x8A10\0x8BA0 r1\r3-1)(pSAMP);
 

Andrinall

Известный
702
518
1.Как можно сделать авто обновление exe файла любыми возможными методами
Когда-то интересовался авто-обновлением SF плагина, наткнулся на это, где наткнулся - уже не помню, но осталось в записях.
Запускается данное чудо в консоли.
Не знаю, сработает ли так, но вот:
C++:
system("taskkill /f /im \"your.exe\" && timeout /t 1 && del \"your.exe\" && ren \"temp_file.exe\" \"your.exe\" && \"your.exe\"");

upd: если что, перед выполнением этого надо скачать новую версию exeшника. (temp_file.exe - путь к новой версии)
 

EclipsedFlow

Известный
Проверенный
1,043
474
Не получается сделать асинхронный http/https запрос. Крашит или зависает игра(но потом крашит).
Кстати - Мне нужно постоянно получать данные у сайта, так что функция вызывается в цикле

C++:
#include <thread>
#include <mutex>
#include <cpr/cpr.h>

mutex mtx{};

void GetAsyncRequest(const string& Address)
{
    cpr::Response{};
    auto Resp = [&]() {
        mtx.lock();
        Response = cpr::Get(Address);
        mtx.unlock();
    };

    thread(Resp).detach();
    return Response;
}

const string Address{"https:\\blast.hk"};
auto Responce = GetAsyncRequest(Address);