Исходник Разблокировка sv_cheats на путоне

Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
Длина сигны = ее уникальность.
Я не знаю какой бездарь будет делать короткую сигну, только наверное еблан, который не знает как она работает.
вот пример с конструкторами. если сделать сигу с вопросиками то тебе оба конструктора найдет(потому что они ничем не отличаются практически) не важно насколько у тебя сига длинная
C++:
#include <iostream>

int x{};
int* ptr1 = &x;
int* ptr2 = nullptr;
class myCls
{
public:
    template<class T> myCls(const T&)
    {
        if constexpr (std::is_same_v<T, int>)
        {
            int i = *(float*)(ptr2);
            std::cout << i << std::endl;
        }
        else
        {
            int i = *(float*)(ptr1);
            std::cout << i << std::endl;
        }
    };
};

int main()
{
    myCls i{ int{} };
    myCls f{ float{} };
}
1650613281700.png
1650613270300.png
1650613456000.png
вот был один конструктор, ты сделал на него сигу. потом габен добавил второй почти такой же конструктор(но с чуть чуть другими нюансами) и уже краш.
(условно).
а int3(CC) в конце это ваще полнейший рандом. там идёт выравнивание до 16 байт(а иногда и 32 и больше как компилятор захочет) с помощью этих CC. сколько на конце будет CC зависит от размера функции и от решений компилятора. если у тебя сига на конец функции вместе с CC, то стоит габену чуть чуть поменять функцию в начале(и следовательно поменять размер) и количество CC может измениться.
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,385
Реакции[?]
2,286
Поинты[?]
191K
на поиграйся в условный симулятор краша. из твоего(всмысле кода чита) кода тут только

TJob GetSomeJob()//типо по сиге нашел джобу(по легенде вернуло кривую джобу потому что сиг нашло несколько)
{
return shitty_job;
}
и
StartWork(GetSomeJob());
представь что остальное это чужой код(код приложухи)
C++:
#include <thread>

using TJob = void(*)();

class Worker
{
    TJob job{};
public:
    Worker(TJob j) noexcept : job{ j } {}
    void DoJob() const noexcept
    {
        job();
    }
};

void StartWork(TJob job)
{
    Worker worker{ job };
    std::thread worker_thread{ [&worker]() {
        std::this_thread::sleep_for(std::chrono::seconds(5));
        worker.DoJob();
    } };
    worker_thread.join();
}

class MyObject
{
    int real_return_code{ 1 };
public:
    int* return_code{ &real_return_code };
    int DoShit() const noexcept { return *return_code; }
};
MyObject my_object{};

void shitty_job() noexcept
{
    my_object.return_code = nullptr;
}

TJob GetSomeJob() noexcept
{
    return shitty_job;
}

int main()
{
    StartWork(GetSomeJob());//типа твой код просто в другом треде условно
    return my_object.DoShit();//типа код игры который крашнет
}
крашит почему? потому что my_object->return_code ноль. почему он ноль? потому что кто-то в другом треде его поменял на ноль? кто? да бог его знает(это был воркер из StartWork). почему он его поменял? потому что ему дали джобу shitty_job 5 секунд назад. кто ему ее дал? да бог его знает(это был main). почему он ее дал? потому что GetSomeJob вернул shitty_job. почему он ее вернул? тоже бог его знает(потому что условно две сиги нашло. но ты даже об этом не знаешь потому что ты не чекнул сколько тебе сиг нашло!). а теперь представь что здесь не 50 строк кода а гораздо больше.
и я не про св_читс говорил я просто в целом говорил про сигсканы. я лично считаю что лучше перестраховаться лишний раз.
Ладно, а причём тут этот класс вообще?
Там будет банальная запись результата скана по сиге в переменную и передача этой переменной в write memory в качестве аргумента.

Ну, у тебя тут явные различия в байтах есть...
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
Ладно, а причём тут этот класс вообще?
Там будет банальная запись результата скана по сиге в переменную и передача этой переменной в write memory в качестве аргумента.


Ну, у тебя тут явные различия в байтах есть...
это различия в относительных аддресах(эти байты поменяются при некст апдейте), они вопросиками будут заменены(иначе сига сдохнет при некст апдейте).
этот класс это просто абстрактный пример. я не говорю про св читс или про этот тред в целом, просто в общем размышляю. довольно часто сиги бывают для вызова функций а не просто для read/write каких-то переменных. и вот когда ты вызываешь не те функции не с теми параметрами потом иногда приходится долго разбираться. да и даже с write могут быть проблемы. допустим ты запишешь не туда, исключения тебе не кинет(потому что адрес валидный, просто не тот который тебе нужен), а потом игра через минуту считает с этого адреса и бац краш. а как узнать что там произошло минуту назад(условно)?
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,385
Реакции[?]
2,286
Поинты[?]
191K
да и даже с write могут быть проблемы. допустим ты запишешь не туда, исключения тебе не кинет(потому что адрес валидный, просто не тот который тебе нужен), а потом игра через минуту считает с этого адреса и бац краш. а как узнать что там произошло минуту назад(условно)?
А тестирование после кодинга идёт нафиг или ещё дальше?)
этот класс это просто абстрактный пример. я не говорю про св читс или про этот тред в целом, просто в общем размышляю.
Ну так зачем размышлять "в общем", при том отвечая во вполне конкретном треде? Здесь вообще не нужно то, что ты посоветовал.
Сига верная? Заходим в игру, тестим, можно ли вводить команды, на которых по дефолту стоит рестрикт с sv_cheats.
Всё работает? Сига верная.
Не работает / крашит? Сига устарела.

Вероятность того, что валвы будут трогать свчитс, околонулевая.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
А тестирование после кодинга идёт нафиг или ещё дальше?)

Ну так зачем размышлять "в общем", при том отвечая во вполне конкретном треде? Здесь вообще не нужно то, что ты посоветовал.
Сига верная? Заходим в игру, тестим, можно ли вводить команды, на которых по дефолту стоит рестрикт с sv_cheats.
Всё работает? Сига верная.
Не работает / крашит? Сига устарела.

Вероятность того, что валвы будут трогать свчитс, околонулевая.
так в том то и дело что ПРОВЕРКА ЧТО НАШЛО ТОЛЬКО ОДНУ СИГУ - И ЕСТЬ ТЕСТИРОВАНИЕ! ты тестируешь что всё пошло по плану(твой план был - найти только одну сигу). игнор того факта что потенциально могло найти и вторую сигу - ОТСУТСТВИЕ ТЕСТИРОВАНИЯ(то есть ты не чекаешь что нашло только одну сигу). к этому я и вёл ЧТО ВСЕ НАДО ТЕСТИРОВАТЬ. любой чек любого вида это уже тестирование. я и говорю что нужно как можно больше чеков и как можно больше тестов потому что в таком случае ты обнаружишь проблему на раннем этапе, и тебе не придется потом разбираться с ее непредсказуемыми последствиями(собственно это и есть смысл тестинга - обнаружение проблемы пока она не нанесла ущерба. если ты не чекаешь уникальность сиги значит потенциально ты можешь найти не те данные и потом ОБНАРУЖИТЬ ПРОБЛЕМУ НА БОЛЕЕ ПОЗДНЕМ ЭТАПЕ когда будет сложнее понять в чем она заключается.).
тестирование не ограничено ручным тестированием(зайти проверить). во-первых есть программатичные способы тестирования(банальный чек на нуллптр в твоем коде), во-вторых еще раз говорю, щас работает - после апдейта теоритически может перестать. и лучше тебе ТВОЙ КОД об этом скажет в детальном виде чем ты зайдешь и поймешь что у тебя нифига не работает и пойдешь долго разбираться.
размышления "в общем" ничем никому еще не вредили при условии что они не уходят от темы. а я от темы и не уходил - чел находит по РВА, я ему советую по сиге, и объясняю что еще следует учитывать(следует учитывать уникальность найденной сиги) при использовании сиг вместо РВА(объяснил проблемы рва(сломается при апдейте), объяснил альтернативный подход(сиги), объяснил потенциальные проблемы этого подхода(может найти не ту сигу если прекращать поиск после нахождения первой сиги)). я считаю что новый тред создавать чтобы сказать два слова - бред, а эти "общие" знания полюбас кому-то пригодятся, и если не тебе или ему, то любому другому кто найдет этот тред в поиске или где-нибудь еще или просто сюда зайдет.
 
Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2022
Сообщения
70
Реакции[?]
7
Поинты[?]
0
Так в том то и дело, что сигнатуры уникальны, каво?

И мне кажется, что за такой наглый врайт вак тебя через неделю словит
неделю играю ваку похуй абсолютно даже дверь открыта ))
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
неделю играю ваку похуй абсолютно даже дверь открыта ))
ваку(ну впринципе от игры зависит на самом деле) похуй на экстернал св читс я несколько лет спокойно гоняю с байтпатчем длл(св читс 1 и как следствие отдаленная камера и тд)(этакий недо-экстернал. с одной стороны экстерналом не назовешь но и интерналом тоже. просто изменение файла на диске). а вот на интернал читы ему не похуй. и на чит енджин(чистый без какихто выебонов) ему тоже не похуй
 
Сверху Снизу