Вопрос Проблема с кодом

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
20 Май 2021
Сообщения
19
Реакции
1
Говно аутыста:
Expand Collapse Copy
#include <iostream>
#include <windows.h>
using namespace std;
extern "C" __declspec(dllexport) int NextHook(int code, long long wParam, long long lParam) { return CallNextHookEx(nullptr, code, wParam, lParam); }
typedef void(__fastcall *pRegister)(void *,const char *, float);
constexpr auto SSGE = 0x14249D570;
constexpr auto GameCvars = 0x1426E6540;
auto Spread = (unsigned long long*)(GameCvars + 0x164);
void CreateConsole()
{
    AllocConsole();
    freopen_s(new FILE*(),"CONOUT$","w",stdout);
}
void init()
{
    CreateConsole();
    do
    {
        if (GetAsyncKeyState('B') & 1)
        {
            *Spread = 0;
        }
    } while (!(GetAsyncKeyState('M') & 1));
}
int __stdcall DllMain(void* hModule, int  ul_reason_for_call, void* lpReserved)
{
    if (ul_reason_for_call == 1)
    {
        CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)init, nullptr, 0, nullptr);
    }
    return 1;
}
Накодил короче хуйню, решил попробовать изменитьразброс, смещения вроде те, но нихуя не меняется, адын вопрос, почему?
И если можете, что надо использовать для антиразброса? вызвать какой-то метод устанавливающий разброс? (в .pdb файле видел pConsole->Register и там дальше название квара, пробовал дёргать - результата нет) или поле занулить какое-то?
(Я знаю что создавать консоль, а темболее дёргать CreateThread = выстрел в ногу, мне чисто для отладки надо было(всё равно не помогло))
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а че выдает в printf("%i\n",Spread ); и в SSGE
?
 
Говно аутыста:
Expand Collapse Copy
#include <iostream>
#include <windows.h>
using namespace std;
extern "C" __declspec(dllexport) int NextHook(int code, long long wParam, long long lParam) { return CallNextHookEx(nullptr, code, wParam, lParam); }
typedef void(__fastcall *pRegister)(void *,const char *, float);
constexpr auto SSGE = 0x14249D570;
constexpr auto GameCvars = 0x1426E6540;
auto Spread = (unsigned long long*)(GameCvars + 0x164);
void CreateConsole()
{
    AllocConsole();
    freopen_s(new FILE*(),"CONOUT$","w",stdout);
}
void init()
{
    CreateConsole();
    do
    {
        if (GetAsyncKeyState('B') & 1)
        {
            *Spread = 0;
        }
    } while (!(GetAsyncKeyState('M') & 1));
}
int __stdcall DllMain(void* hModule, int  ul_reason_for_call, void* lpReserved)
{
    if (ul_reason_for_call == 1)
    {
        CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)init, nullptr, 0, nullptr);
    }
    return 1;
}
Накодил короче хуйню, решил попробовать изменитьразброс, смещения вроде те, но нихуя не меняется, адын вопрос, почему?
И если можете, что надо использовать для антиразброса? вызвать какой-то метод устанавливающий разброс? (в .pdb файле видел pConsole->Register и там дальше название квара, пробовал дёргать - результата нет) или поле занулить какое-то?
(Я знаю что создавать консоль, а темболее дёргать CreateThread = выстрел в ногу, мне чисто для отладки надо было(всё равно не помогло))
Тебе нужно получить указатель на GameCvars через адрес, а не прибавлять к адресу смещение разраброса

constexpr auto GameCvars = 0x1426E6540;
auto Spread = (unsigned long long*)(GameCvars + 0x164);
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Тебе нужно получить указатель на GameCvars через адрес, а не прибавлять к адресу смещение разраброса

constexpr auto GameCvars = 0x1426E6540;
auto Spread = (unsigned long long*)(GameCvars + 0x164);
ты сделал тоже самое что и у него
 
Говно аутыста:
Expand Collapse Copy
#include <iostream>
#include <windows.h>
using namespace std;
extern "C" __declspec(dllexport) int NextHook(int code, long long wParam, long long lParam) { return CallNextHookEx(nullptr, code, wParam, lParam); }
typedef void(__fastcall *pRegister)(void *,const char *, float);
constexpr auto SSGE = 0x14249D570;
constexpr auto GameCvars = 0x1426E6540;
auto Spread = (unsigned long long*)(GameCvars + 0x164);
void CreateConsole()
{
    AllocConsole();
    freopen_s(new FILE*(),"CONOUT$","w",stdout);
}
void init()
{
    CreateConsole();
    do
    {
        if (GetAsyncKeyState('B') & 1)
        {
            *Spread = 0;
        }
    } while (!(GetAsyncKeyState('M') & 1));
}
int __stdcall DllMain(void* hModule, int  ul_reason_for_call, void* lpReserved)
{
    if (ul_reason_for_call == 1)
    {
        CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)init, nullptr, 0, nullptr);
    }
    return 1;
}
Накодил короче хуйню, решил попробовать изменитьразброс, смещения вроде те, но нихуя не меняется, адын вопрос, почему?
И если можете, что надо использовать для антиразброса? вызвать какой-то метод устанавливающий разброс? (в .pdb файле видел pConsole->Register и там дальше название квара, пробовал дёргать - результата нет) или поле занулить какое-то?
(Я знаю что создавать консоль, а темболее дёргать CreateThread = выстрел в ногу, мне чисто для отладки надо было(всё равно не помогло))
C++:
Expand Collapse Copy
class CGameCvars
{
public:

    template <class T>
    void Write(DWORD64 dwOffset, T tValue)
    {
        *(T*)((DWORD64)this + dwOffset) = tValue;
    }
    
    static CGameCvars * Singleton()
    {
        return *(CGameCvars**)((DWORD64)0x1426E6540);
    }
};

CGameCvars::Singleton()->Write(0x164,0);
 
C++:
Expand Collapse Copy
class CGameCvars
{
public:

    template <class T>
    void Write(DWORD64 dwOffset, T tValue)
    {
        *(T*)((DWORD64)this + dwOffset) = tValue;
    }
   
    static CGameCvars * Singleton()
    {
        return *(CGameCvars**)((DWORD64)0x1426E6540);
    }
};

CGameCvars::Singleton()->Write(0x164,0);
Объясни пж в чём разница между твоим и моим кодом, мы же в обоих случаях ссылаемся на адрес одной и той-же структуры, и прибавляем одинаковый оффсет, так в чём разница?
Тебе нужно получить указатель на GameCvars через адрес, а не прибавлять к адресу смещение разраброса

constexpr auto GameCvars = 0x1426E6540;
auto Spread = (unsigned long long*)(GameCvars + 0x164);
Указатель через адрес? ну тоесть я мог юзануть GameCvars*, это и будет указателем?
вроде понял, поправьте если не так: по этому адресу лежит объявление структуры, а на саму инициализированную структуру с актуальными переменными нам нужно получить адрес, так?
 
Назад
Сверху Снизу