Я сначала хотел сделать пулл реквест с целью помочь опен сурсу, но мне стало лень, поэтому напишу просто в теме.Привет, форумчане!
Хотел бы с вами поделиться своей новой версией csgo cheat sdk (digital-sdk).
Так как на мою прошлую работу было много жалоб, я решился на разработку более новой версии с учетом всех старых просьб и проблем.
Если у вас есть какие-либо предложения или критика, я всегда готов к обсуждению.
Основные возможности sdk включают в себя все самое необходимое для простого использования. Он включает в себя шаблоны для создания функций, классов и структур, а также примеры кода, которые могут быть использованы в качестве отправной точки для создания собственных читов.
Отдельное спасибо:
es3n1n - за идею в добавлении clang-format.
xnxkzeu - в поиске большинства проблем.
Kamazik & miracl3 & Quadro1337 - в профилировке кода.
binkynz - за интересную идею модуль системы.
И всем остальным, кто активно использовал sdk и писал свои багрепорты.
Функции: autowall, eng prediction, bhop, chams, player esp(name, box)
Хукнутые функции: create move, dme, cl move etc.
Зависимости:Пожалуйста, авторизуйтесь для просмотра ссылки.(ver: 1.89.4 WIP),Пожалуйста, авторизуйтесь для просмотра ссылки.
github link:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Обертка над функцией CreateThread, которая используется только один раз - Зачем? К тому же, в заголовке указано C++20, почему тогда не использовать std::thread (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)?Исправленная версия:
У тебя есть директива препроцессора. Ты используешь ее для того чтобы не аллоцировать консоль в релизной версии, но ты не редактируешь макрос (log_print), что делает эффективность этого решения близкой к нулю.
IDA ( Pseudo in release version ):
Парсинг нетваров сделан ужасно, стоит переделать его на систему хэшей (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).На данный момент (IDA дизассембли ref: get_bounding_box):
Пожалуйста, авторизуйтесь для просмотра ссылки.
Вернёмся немного назад, инициализация адресов - это всё мусор. Здесь есть подобие обращений по хэшам, но на практике оно не имеет смысла, так как выполнено плохо.
Сейчас ситуация выглядит подобным образом:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Наилучшим решением было бы инициализировать и хранить названия адресов во время компиляции, а затем обращаться к ним по хэшу без каких-либо манипуляций с строками ( особенно поксоренными ).
В хуках возникает подобная проблема, и решается точно таким же образом.
Пример проблемы:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Кэширование сущностей реализовано неэффективно, так как оно бесполезно без сортировки. ( Никакой разнице в производительности не будет по сравнению с интерфейсом Entity List, но будет не нужная аллокация памяти )
Что это?
Пожалуйста, авторизуйтесь для просмотра ссылки.
Итог
Я описал лишь малую часть ошибок, допущенных при разработке этого SDK, сосредоточившись только на самых значительных, влияющих на производительность вещах. Возвращаясь к заголовку темы, он обозначен как C++ 20 SDK, но в действительности всё сводится к использованию спецификаторов, которые автор не понимает. В целом, создается впечатление, что этот код - сборник всего, что было спизжено под предлогом "крутости", но их работа не была понята автором.
Последнее редактирование: