Как переписать чит под андетект?

В вф вмт хуки можно обойти через GameFramework Listner.
От части это можно назвать "крючком", но "крючком", который использует функции из клиента и движка игры, а не какой-то vmt hook 4, 17 индекса
 
Последнее редактирование:
ты не прав здесь, в вф вмт хуки можно обойти через GameFramework Listner.
От части это можно назвать "крючком", но "крючком", который использует функции из клиента и движка игры, а не какой-то vmt hook 4, 17 индекса

Ты сам-то понял, что написал?
 
Последнее редактирование:
Последнее редактирование:
В вф вмт хуки можно обойти через ...
... который использует функции из клиента и движка игры, а не какой-то vmt hook 4, 17 индекса
окей, тебе то точно лучше знать:roflanEbalo:

Изучи сначала, что такое вмт хук и как это работает. А то пишешь что попало.
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В вф вмт хуки можно обойти через GameFramework Listner.
От части это можно назвать "крючком", но "крючком", который использует функции из клиента и движка игры, а не какой-то vmt hook 4, 17 индекса
C++:
Expand Collapse Copy
struct SActionEvent
{
    SActionEvent(EActionEvent e, int val = 0, const char* des = 0) :
        m_event(e),
        m_value(val),
        m_description(des)
    {}
    EActionEvent m_event;
    int          m_value;
    const char* m_description;
};
struct SGameFrameworkListener
{
    virtual ~SGameFrameworkListener() {};
    virtual void OnPostUpdate(float fDeltaTime);
    virtual void OnSaveGame(struct ISaveGame* pSaveGame) {};
    virtual void OnLoadGame(struct ILoadGame* pLoadGame) {};
    virtual void OnLevelEnd(const char* nextLevel) {};
    virtual void OnActionEvent(const SActionEvent& event) {};
    virtual void OnPreRender();

    virtual void OnSavegameFileLoadedInMemory(const char* pLevelName) {};
    virtual void OnForceLoadingWithFlash() {};
};
struct CGameFunction : SGameFrameworkListener, IGPUProfiler
{
public:
    void EndFrame();
    void OnActionEvent(const SActionEvent& event) {};
    void OnPostUpdate(float fDeltaTime);
    void OnPreRender() {};
};
class CGameFramework
{
public:
    void RegisterListener(SGameFrameworkListener* pGameFrameworkListener, const char* name, EFRAMEWORKLISTENERPRIORITY eFrameworkListenerPriority)
    {
        CallFunction<void(__thiscall*)(PVOID, SGameFrameworkListener*, const char*, EFRAMEWORKLISTENERPRIORITY)>(this, 0x360)(this, pGameFrameworkListener, name, eFrameworkListenerPriority);
    }
    void UnregisterListener(SGameFrameworkListener* pGameFrameworkListener)
    {
        CallFunction<void(__thiscall*)(PVOID, SGameFrameworkListener*)>(this, 0x368)(this, pGameFrameworkListener);
    }
}
 
C++:
Expand Collapse Copy
struct SActionEvent
{
    SActionEvent(EActionEvent e, int val = 0, const char* des = 0) :
        m_event(e),
        m_value(val),
        m_description(des)
    {}
    EActionEvent m_event;
    int          m_value;
    const char* m_description;
};
struct SGameFrameworkListener
{
    virtual ~SGameFrameworkListener() {};
    virtual void OnPostUpdate(float fDeltaTime);
    virtual void OnSaveGame(struct ISaveGame* pSaveGame) {};
    virtual void OnLoadGame(struct ILoadGame* pLoadGame) {};
    virtual void OnLevelEnd(const char* nextLevel) {};
    virtual void OnActionEvent(const SActionEvent& event) {};
    virtual void OnPreRender();

    virtual void OnSavegameFileLoadedInMemory(const char* pLevelName) {};
    virtual void OnForceLoadingWithFlash() {};
};
struct CGameFunction : SGameFrameworkListener, IGPUProfiler
{
public:
    void EndFrame();
    void OnActionEvent(const SActionEvent& event) {};
    void OnPostUpdate(float fDeltaTime);
    void OnPreRender() {};
};
class CGameFramework
{
public:
    void RegisterListener(SGameFrameworkListener* pGameFrameworkListener, const char* name, EFRAMEWORKLISTENERPRIORITY eFrameworkListenerPriority)
    {
        CallFunction<void(__thiscall*)(PVOID, SGameFrameworkListener*, const char*, EFRAMEWORKLISTENERPRIORITY)>(this, 0x360)(this, pGameFrameworkListener, name, eFrameworkListenerPriority);
    }
    void UnregisterListener(SGameFrameworkListener* pGameFrameworkListener)
    {
        CallFunction<void(__thiscall*)(PVOID, SGameFrameworkListener*)>(this, 0x368)(this, pGameFrameworkListener);
    }
}
у меня есть такое, мб кому-то пригодится
 
у меня есть такое, мб кому-то пригодится
Конечно, оно у тебя есть. Ведь способ с перехватом функции pFramework->RegisterListener() и ее аргументов уже как год слит в паблик.
Пожалуйста, авторизуйтесь для просмотра ссылки.


Только вот проблема в том, что ты понятия не имеешь, как работает эта виртуальная функция, что делают виртуальные функции внутри класса IGameFrameworkListener, и как в памяти игры искать их индексы в случае изменения. И только не надо писать, что это не так.

Ты бы лучше занялся саморазвитием, а не продавал каждый попавшийся в руки паблик код.
 
Последнее редактирование:
Конечно, оно у тебя есть. Ведь способ с перехватом функции pFramework->RegisterListener() и ее аргументов уже как год слит в паблик.
Пожалуйста, авторизуйтесь для просмотра ссылки.


Только вот проблема в том, что ты понятия не имеешь, как работает эта виртуальная функция, что делают виртуальные функции внутри класса IGameFrameworkListener, и как в памяти игры искать их индексы в случае изменения. И только не надо писать, что это не так.

Ты бы лучше занялся саморазвитием, а не продавал каждый попавшийся в руки паблик код.
Очень интересно, откуда у тебя такие выводы другалёк? Ты в моих проектах код видел, не пойму. Ответив новичку, я привёл в пример, то что помогает мне всегда, ещё одну вещь не сказал, как скомпилировать dll с другой точкой входа, тем самым поменять md5 чита и уменьшить размер длл примерно на 60-70%. Не стоит забывать про такую вещь как upx сжатие, тоже меняет md5. Также можно скрыть из модулей процесса, сам длл чита, не знаю насколько это помогает, но имеет место быть. Эти действия в совокупности дают ud чит.
а вот и слив с "UC"
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
а вот и слив с "UC"
Пожалуйста, авторизуйтесь для просмотра ссылки.
Все верно, эти функции располагаются в исходном коде CryEngine3 в библиотеке IGameFramework.h. Затем код выложили на UC, после кто-то выложил с ним исходник своего чита, и все начали копировать этот код в свои проекты. Вот так он и дошел до тебя.

если я бы это услышал от айкода, димедрола и.т.д., у ребят, которые многое знают, я бы принял как следствие, а так, тут пишет не понятно кто
Как вы надоели с такой логикой, вот честно. А что, обязательно нужно быть Айкодедом или Димедролом, чтобы: научиться работать в mvs, выучить C++, изучить методичку по разработке игр на CE3, научиться работать с исходником этого движка, научиться работать с IDA дизассемблером, научиться анализировать псевдокод, научиться работать с ReclassNet'ом, научиться работать с отладчиком в реальном времени? Они обычные программисты, знающие стуктуру третьего крайэнджа. Именно программисты, а не ctrl+c/ctrl+v дурачки.

ничего в топик полезного привёл, никак не помог народу, но да ладно.
Хочу - помогаю, не хочу - не помогаю. Это мое дело и я вправе писать то, что хочу сам.

Очень интересно, откуда у тебя такие выводы другалёк? Ты в моих проектах код видел, не пойму?
С чего я сделал вывод о том, что ты в свои проекты пастишь паблик код, толком не изучая его? Что уже априори ставит под вопрос твою компитентность как разработчика и продавца модификаций. Так, ты сам прочитай, что ты написал. Ничего не смущает?
В вф вмт хуки можно обойти через GameFramework Listner.
От части это можно назвать "крючком", но "крючком", который использует функции из клиента и движка игры, а не какой-то vmt hook 4, 17 индекса
1. Что значит обойти вмт хук? Чего? Ты либо используешь его, либо не используешь.
2. По-твоему, вмт хук не использует функции клиента (виртуальные)? Ты вообще понимаешь принцип его работы?

Если бы ты писал все самостоятельно, а не брал готовый код с UC'а, то ты бы знал, что вмт хук - это перехват виртуальной функции(метода) с виртуальной таблицы какого-либо класса/структуры/интерфейсного класса, с целью ее замены на свою. Например, перехват функции pSystem->Update(), используемой для обновления системы движка без создания визуализированного кадра, находящейся на 4-ой позиции (индекс 4) в таблице структуры ISystem, или, например, перехват функции pRenderer->GetClient3DDevice9()->pDevice->Present(), используемой для вывода заднего буфера на передний буфер (на экран), находящейся на 17-ой позиции (индекс 17) в таблице интерфейсного класса IDirect3DDevice9.

Поэтому я тебе и дал совет: "Саморазвивайся". В плане изучения плюсов и движка игры. Чтобы не выглядить дypaкoм в глазах знающих людей.
 
Последнее редактирование:
Все верно, эти функции располагаются в исходном коде CE3 в библиотеке IGameFramework.h. Затем код выложили на UC, после кто-то выложил с ним исходник своего чита, и все начали копировать этот код в свои проекты. Вот так он и дошел до тебя.


Как вы надоели с такой логикой, вот честно. А что, обязательно нужно быть Айкодедом или Димедролом, чтобы: научиться работать в mvs, выучить C++, изучить методичку по разработке игр на CE3, научиться работать с исходником этого движка, научиться работать с IDA дизассемблером, научиться анализировать псевдокод, научиться работать с ReclassNet'ом, научиться работать с отладчиком в реальном времени? Они обычные программисты, знающие стуктуру третьего крайэнджа. Именно программисты, а не ctrl+c/ctrl+v дурачки.


Хочу - помогаю, не хочу - не помогаю. Это мое дело и я вправе писать то, что хочу сам.


С чего я сделал вывод о том, что ты в свои проекты пастишь паблик код, толком не изучая его? Что уже априори ставит под вопрос твою компитентность как разработчика и продавца модификаций. Так, ты сам прочитай, что ты написал. Ничего не смущает?

1. Что значит обойти вмт хук? Чего? Ты либо используешь его, либо не используешь.
2. По-твоему, вмт хук не использует функции клиента? Ты вообще понимаешь принцип его работы?

Если бы ты писал все самостоятельно, а не брал готовый код с UC'а, то ты бы знал, что вмт хук - это способ перехвата виртуальной функции(метода) с виртуальной таблицы какого-либо класса/структуры/интерфейсного класса, с целью ее замены на свою. Например, перехват функции pSystem->Update(), используемой для обновления системы движка без создания визуализированного кадра, находящейся на 4-ой позиции (индекс 4) в таблице структуры ISystem, или, например, перехват функции pRenderer->GetClient3DDevice9()->pDevice->Present(), используемой для вывода заднего буфера на передний буфер (на экран), находящейся на 17-ой позиции (индекс 17) в таблице интерфейсного класса IDirect3DDevice9.

Поэтому я тебе и дал совет: "Саморазвивайся". В плане изучения плюсов и движка игры. Чтобы не выглядить дypaкoм в глазах знающих людей.
Надо же сидеть несколько часов думать. В сообщении про vmt шла, речь о "обходе его использования", но нет же нужно доебаться к каждому слову. Я прекрасно знаю, что есть таблица в sdk d3x9 виртуальными функциями. Vmt хук использует winapi функции, которые свойствены не только вф, а другим играм, речь идёт про функции j_xxxxx, которые можно найти в иде. Насчёт пастинга, раскрою тебе тайну, если взять готовый код с интернета(полностью), то чит уйдёт в детект на следующий день. Пастер не тот, кто берёт чужой код, а тот кто crtl+c, crtl+v запомни это, чужой код можно использовать с умом.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проще новый написать, чем искать и переписывать детект функции.
На которые может уйти не мало времени.
А те исходники, что выложины тут, очень сильно детекченные.
Надо же сидеть несколько часов думать, что кому-то не похуй на твоё мнение в интернете, в сообщении про vmt шла, речь о "обходе его использования", но нет же нужно доебаться к каждому слову. Я прекрасно знаю, что есть таблица в sdk d3x9 виртуальными функциями. Vmt хук использует winapi функции, которые свойствены не только вф, а другим играм, речь идёт про функции j_xxxxx, которые можно найти в иде. Насчёт пастинга, раскрою тебе тайну, если взять готовый код с интернета(полностью), то чит уйдёт в детект на следующий день. Пастер не тот, кто берёт чужой код, а тот кто crtl+c, crtl+v запомни это, чужой код можно использовать с умом.
Любое winapi можно убрать.
Любую функцию можно промутировать на уровне кода, во время компиляции.
Любое число заменить текстом и похорить его. Это только мелочевка, что можно сделать ручками.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу