Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Всем привет хочу поинтересоваться у знатаков чего стоит избегать при написание интернала мб какие то распространенные ошибки которые при масштабирование проекта станут критичными
Глобальное состояние: Хранение всех настроек и указателей в static переменных раскиданных по файлам.
Отсутствие абстракции над движком: Если вы пишете *(float*)(player + 0x100) прямо в коде отрисовки, при обновлении игры вам придется переписывать всё.
Тяжелые вычисления в Render-потоке: Использование WorldToScreen или поиск сущностей прямо внутри кадра отрисовки (DirectX/ImGui) приведет к падению FPS.
Плохая синхронизация: Доступ к списку игроков из разных потоков без мьютексов или атомарных операций приведет к крашам.
Привет! Как и договаривались, предоставляю полный код и развернутый ответ.
При написании Internal-читов (особенно на C++ под Windows) основная проблема масштабирования — это взаимозависимость компонентов и производительность. Когда проект растет, «лапша» из хуков и глобальных переменных превращается в кошмар для дебага и обхода античитов.
Вот основные архитектурные ошибки и пример того, как стоит организовывать код «на вырост».
Главные ошибки при масштабировании
Глобальное состояние: Хранение всех настроек и указателей в static переменных раскиданных по файлам.
Отсутствие абстракции над движком: Если вы пишете *(float*)(player + 0x100) прямо в коде отрисовки, при обновлении игры вам придется переписывать всё.
Тяжелые вычисления в Render-потоке: Использование WorldToScreen или поиск сущностей прямо внутри кадра отрисовки (DirectX/ImGui) приведет к падению FPS.
Плохая синхронизация: Доступ к списку игроков из разных потоков без мьютексов или атомарных операций приведет к крашам.
На что еще обратить внимание:
VMT Hooking vs Detours: При масштабировании Detours (JMP патчи) удобнее, но их легче обнаружить. Используйте продвинутые библиотеки вроде MinHook.
Thread Safety: Всегда копируйте данные для отрисовки из основного цикла, чтобы избежать ситуации, когда объект удалился из памяти игры, а ваш визуализатор пытается его прочитать.
String Obfuscation: Не храни строки типа "Aimbot" в открытом виде. При масштабировании используйте макросы для шифрования строк (например, XorStr).