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

Rapt0r6113

Известный
103
11
Как редактировать адреса памяти? например надо 0xB7CEE4 (бесконечный бег) сделать включённым, если спросите, почему в клео не сделать, отвечу, что для ГВ нужно(exe формат)
 

AWRage

Активный
642
141
Как редактировать адреса памяти? например надо 0xB7CEE4 (бесконечный бег) сделать включённым, если спросите, почему в клео не сделать, отвечу, что для ГВ нужно(exe формат)
bool b = *(bool *)0xB7CEE4; // read
*(bool *)0xB7CEE4 = true; // write
 
  • Нравится
Реакции: Rapt0r6113

Woofing Giraffe

Активный
402
49
Нужно зарандомить число от x до y включительно. Как реализовать? Пробовал так: rand() % (Count[1] - Count[0]) + Count[0];
На числах от 1 до 9 работает, дальше бред выдает
 

FYP

Известный
Администратор
1,758
5,722
Нужно зарандомить число от x до y включительно. Как реализовать? Пробовал так: rand() % (Count[1] - Count[0]) + Count[0];
На числах от 1 до 9 работает, дальше бред выдает
rand() - прошлый век, не надо его юзать.
C++:
#include <random>

int randomInteger(int min, int max)
{
   static std::random_device rd;
   static std::default_random_engine e1(rd());
   std::uniform_int_distribution<int> uniform_dist(min, max);
   return uniform_dist(e1);
}
 
  • Нравится
Реакции: gaZmanoV и Woofing Giraffe

p1cador

cerf
Проверенный
220
359
Несколько вопросов, не касаемых гта:
1)Steam. HL2: DM. На сервере использвуется VAC. Если сразу после включения игры заинжектить простую .dll, которая хукает directx, то при заходе на сервер прилетает VAC бан, или кикает, или еще че, но если заинжектить ее после подключения к серверу - все работает прекрасно. Неужели в CS:GO будет так же? dZFHfvybigc.jpg
2)Может есть какие-нибудь хитрости в поиске различных структур в играх? Поделитесь ссылками на статьи/гайды пож. Потому что у меня, кроме как пригласить 2-3 человек на сервер и искать в памяти их хп, позицию и т.п., искать закономерности, разницу между адресами этих значений у игроков (по идее должна быть равна размеру стр-ры), других идей пока что нет.
3)Или, может, по HL2: DM (движок Source) выкладывали хоть какие-нибудь адреса? Искать всё с нуля впадлу пзедц. Нашел исходники движка, но они старые и хер знает, сколько потерпели изменений.
 

FYP

Известный
Администратор
1,758
5,722
@Picador
1. насколько мне известно, инжектить dll туда, где есть встроенный античит - это плохая практика. спустя время такие дллки начинают палится, если не будут замечены античитом сразу же. почему? точно сказать не могу, но можно предположить, что неизвестные библиотеки отправляются на сервера античита для анализа, возможно даже ручного. альтернатива - внешние (external) читы, но и у них есть хуева гора нюансов.
2. трюки есть, но они все не универсальные. например, в CE есть немало инструментов для автоматического анализа структур, в IDA Pro можно составить структуру из обращения к полям, есть даже отдельная программа ReClass, которая предназначена лишь для одной цели - разбора структур в запущенном процессе, но любые автоматические методы никак не могут гарантировать правильность распознавания, и чаще всего разбор любых структур требует ручного вмешательства.
3. можно поискать читы с открытыми исходниками. начни с unknowncheats.me, там немало такого контента.
 
  • Нравится
Реакции: 01EG, AWRage и p1cador

Sire Like

Blanche Bier
Друг
487
232
Нужно зарандомить число от x до y включительно. Как реализовать? Пробовал так: rand() % (Count[1] - Count[0]) + Count[0];
На числах от 1 до 9 работает, дальше бред выдает

C++:
int x = rand() % (B - A + 1) + A;
я так делал

Pawn, как пример.
Код:
stock FractionName(playerid)
{
    new fractionname[40];
    switch(pInfo[playerid][pMember])
    {
        case 1: { fractionname = "38"; }
        case 2: { fractionname = "64"; }
        case 3: { fractionname = "208+"; }
         case 4: { fractionname = "++102"; }
        case 5: { fractionname = "283"; }
    }
    return fractionname;
}

И потом хуярим например так:
Код:
new dialog[24 + 40 + 40]; format(dialog, sizeof(dialog), "%s приглашает Вас присоединиться к %s", pInfo[playerid][pName], FractionName(playerid));

Kak захуярить на C++ такое? Ну сток создать
 
Последнее редактирование модератором:

Woofing Giraffe

Активный
402
49
Pawn, как пример.
Код:
stock FractionName(playerid)
{
    new fractionname[40];
    switch(pInfo[playerid][pMember])
    {
        case 1: { fractionname = "38"; }
        case 2: { fractionname = "64"; }
        case 3: { fractionname = "208+"; }
         case 4: { fractionname = "++102"; }
        case 5: { fractionname = "283"; }
    }
    return fractionname;
}

И потом хуярим например так:
Код:
new dialog[24 + 40 + 40]; format(dialog, sizeof(dialog), "%s приглашает Вас присоединиться к %s", pInfo[playerid][pName], FractionName(playerid));

Kak захуярить на C++ такое? Ну сток создать
char же обычный
 

BlackKnigga

Известный
BH Team
922
443
Есть две строки, одна указатель, другая массив:
C++:
char *pstr = "string",
        str[] = "string";

Как их сравнить?
 

p1cador

cerf
Проверенный
220
359
@BlackKnigga, название массива(str) это адрес его первого элемента.
Передай их в соответствующую функцию/напиши сам
 
Последнее редактирование: