Bo0m21
-
Постов
41 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Bo0m21
-
-
Я уже испробовал много способов по смещению и всему остальному и это работает не правильно, и пока не могу понять в чем дело.
Тут вопрос такой, как найти всех отзеркаленных игроков или наоборот постоянных?
Возможно на форуме есть кто нибудь кто делал эксиклнал чит и может что то подсказать. Листок я хочу сделать все через экстернат и дописать аим и разброс. Так как лично я не видел таких витков на эту игру и поэтому есть интерес сделать подобне.
-
Всем привет! Ребят занимаюсь написанием экстелнал чита для игры и наблюдаю проблему, она заключается в том что некоторые игроки или монстры просто не читаются.
Хотя большая асть читается и работает правильно. Кто с таким сталкивался? И как быть в подобной ситуации?
Спойлерpublic static class Offsets { // Client dll public static readonly int PlayerLocal = 0x007094D8; public static readonly int PlayersList = 0x0071A044; public static readonly int PlayersListCount = 0x00824D14; public static readonly int PlayerNext = 0x10; public static readonly int PlayerHealth = 0xEC; public static readonly int PlayerCommand = 0xE4; public static readonly int PlayerСoordinates = 0x94; public static readonly int PlayerCoordinatesView = 0xF4; // Engine dll public static readonly int ViewMatrixBase = 0x00605EEC; public static readonly int ViewMatrix = 0x2E4; } public static class Players { public static PlayerModel LocalPlayer; public static List<PlayerModel> AllPlayers; private static byte[] buffer; /// <summary> /// Update local player /// </summary> public static void UpdatePlayerLocal() { PlayerModel newLocalPlayer = new PlayerModel(); MemoryHelpers.ReadMemory(Game.ClientdllAdress + Offsets.PlayerLocal, 4, out buffer); newLocalPlayer.Adress = BitConverter.ToInt32(buffer, 0); MemoryHelpers.ReadMemory(newLocalPlayer.Adress + Offsets.PlayerHealth, 4, out buffer); newLocalPlayer.Health = BitConverter.ToInt32(buffer, 0); MemoryHelpers.ReadMemory(newLocalPlayer.Adress + Offsets.PlayerCommand, 4, out buffer); newLocalPlayer.Command = BitConverter.ToInt32(buffer, 0); newLocalPlayer.Coordinates = new float[3]; for (int i = 0; i < 3; i++) { MemoryHelpers.ReadMemory(newLocalPlayer.Adress + Offsets.PlayerСoordinates + i * 4, 4, out buffer); newLocalPlayer.Coordinates[i] = BitConverter.ToSingle(buffer, 0); } newLocalPlayer.CoordinatesView = new float[3]; for (int i = 0; i < 3; i++) { MemoryHelpers.ReadMemory(newLocalPlayer.Adress + Offsets.PlayerCoordinatesView + i * 4, 4, out buffer); newLocalPlayer.CoordinatesView[i] = BitConverter.ToSingle(buffer, 0); } newLocalPlayer.ViewMatrix = new float[4, 4]; MemoryHelpers.ReadMemory(Game.EnginedllAdress + Offsets.ViewMatrixBase, 4, out buffer); int viewMatrixAdress = BitConverter.ToInt32(buffer, 0); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { MemoryHelpers.ReadMemory(viewMatrixAdress + Offsets.ViewMatrix + (i * 16) + (j * 4), 4, out buffer); newLocalPlayer.ViewMatrix[i, j] = BitConverter.ToSingle(buffer, 0); } } LocalPlayer = newLocalPlayer; } /// <summary> /// Update all players /// </summary> public static void UpdateAllPlayer() { int playersCount = 4096; // TODO: Rewrite get count players List<PlayerModel> newPlayers = new List<PlayerModel>(); for (int i = 0; i < playersCount; i++) { PlayerModel player = new PlayerModel(); MemoryHelpers.ReadMemory(Game.ClientdllAdress + Offsets.PlayersList + i * Offsets.PlayerNext, 4, out buffer); player.Adress = BitConverter.ToInt32(buffer, 0); MemoryHelpers.ReadMemory(player.Adress + Offsets.PlayerHealth, 4, out buffer); player.Health = BitConverter.ToInt32(buffer, 0); MemoryHelpers.ReadMemory(player.Adress + Offsets.PlayerCommand, 4, out buffer); player.Command = BitConverter.ToInt32(buffer, 0); // Check Health and Command player if (player.Health == 0 || player.Command == 0) { continue; } player.Coordinates = new float[3]; for (int j = 0; j < 3; j++) { MemoryHelpers.ReadMemory(player.Adress + Offsets.PlayerСoordinates + j * 4, 4, out buffer); player.Coordinates[j] = BitConverter.ToSingle(buffer, 0); } player.CoordinatesView = new float[3]; for (int j = 0; j < 3; j++) { MemoryHelpers.ReadMemory(player.Adress + Offsets.PlayerCoordinatesView + j * 4, 4, out buffer); player.CoordinatesView[j] = BitConverter.ToSingle(buffer, 0); } newPlayers.Add(player); } AllPlayers = newPlayers; } }
-
Всем привет. Пошел 4 день как я пытаюсь найти структуру зомби в игре Left 4 dead 2.
Она мне нужна для отрисовки зомби(wh). Если есть знающие или те кто уже искал ее то прошу помощи.
И еще один вопрос. Для аима мне нужно проверку на видимость зомби. Кто нибудь на форуме ее реализовывал?
Сколько я читал на других форумах все равно не пойму как ее реализовать. Тоже с этим прошу помочь.
-
Итак друзья, благодаря моим усилиям проблема нашлась.
Перепробовав 3 игры, стим не стим я нашел проблему, она пряталась в самой матрице.
Тщательнее проверяйте матрицу. Если у вас будет выдавать какие то космические значения то у вас просто не верный адрес.
В этом вообщем ничего сложного нету. Спасибо всем кто помогал
-
Только что, ШАРИК сказал:
Вот сейчас многим обидно было...
Это написал все таки он и все таки может у него такое было.
Никто вообще с таким не сталкивался и никто не может понять откуда эти значения берутся
Я никого не хотел обидеть просто тот кто писал код может я думаю в таких проблемах разобраться.
Хотя хз. Точно такой же код я видел у одного зарубежного ютубера.
-
Кину еще скрин к посту выше. Уже скрин с кски что ничего не работает.
На скрине код, игроки их координаты и места где должно что отрисоваться
Это все я думаю поймут и увидят в коде. Но вот такие проблемы...
Видимо с этим может помочь только Кенг
-
5 минут назад, 2zolo2 сказал:
Bo0m21, значит в коде, где-то ошибка, проверь весь код на неправильные значения.
Как ты скажешь на то что...
Я взял код полностью с https://github.com/remizovm/keng_esp_hack/blob/master/esp.c
При этом в коде, в рабочем коде я ничего не менял кроме оффсетов. Повторюсь что ничего.
Координаты полностью идентичны тому что выдает у меня в программе на шарпе.
Ошибки в коде быть не может. На матрицу оффсеты правильные, других там просто нету.
Меня напрягают в матрице значения по 2-5к. Видимо с ними что то не так.
Просто я уверен был в своем коде, я понимал что и как происходит что он делает.
И ошибки быть не могло как ни крути. Вообщем ошибка есть, не пойми где. Будем искать
Если у кого нибудь возникала подобная ситуация, отпишитесь пожалуйста
-
7 минут назад, ШАРИК сказал:
Будь у меня left 4 dead , я бы проверил , а так только пример из жизни привёл...
Ну вообщем видимо как ты и говорил, что то не то
Странно почему так выводит. Вот там смотри матрица и координаты по которым должно рисовать
Ноо они очень больште для моего окна
P.s обновил скрин. Вот по таким кордам должно рисовать
-
10 минуту назад, ШАРИК сказал:
Приводить типы не всегда хорошо...
Там нет ничего что могло бы работать не правильно.
Уже скачал ксс и сейчас протестирую на ней всю матрицу.
Узнаю у кого проблемы, у меня или у игры
-
2 минуты назад, ШАРИК сказал:
У любого человека есть право на ошибку...И если вдруг что , не пеняй на меня
Посмотри в CE, что находится по адресу значения видовой матрицы (по адресу элемента массива ,который тебе нужен (там их 16))
Если не совпадает со значением выведенным в консоль , то ищи в интернете рабочую функцию world_to_screen .
А если значение в CE совпадает с выведенным в консоль значением , то я не виноват...А что за функция в консоли?
Я конечно проверю, но она гарантированно правильная, там ничего не изменено кроме приведения типов.
В инете смотрел другую видовую матрицу, они идентичны.
-
Только что, ШАРИК сказал:
Нет .Но знаю точно ,что с ней что-то не так .Ибо пришлось переделывать ...
Подскажи, а то я уже устал с ней.
Может в скайп?
-
Только что, ШАРИК сказал:
Хмм...Использовал функцию world_to_screen от Keng'а .Не пошла... Переделал чутка и всё нормально)
Использовал ее для L4D2?
-
3 часа назад, 2zolo2 сказал:
Bo0m21, у тебя left 4 dead 2 пиратка или стим? и скинь адресса все, может посмотрю.
Видовая матрица: engine.dll+0x5FDC9C.
Смысл там что то смотреть если все есть на скрине и я выложил все координаты
-
2 часа назад, ШАРИК сказал:
Размер окна игры правильно получаешь ?Я когда esp делал у меня криво отображалось значение хп из-за этого.
Да, я абсолютно все получаю правильно. Меня напрягает те значения 5136, 3573 ...
Они очень большие и мне кажется проблема в них и кроется.потому что я когда смотрел видео и гайды то там было не больше -500
У меня же за 5000 уходит. Вообщем жду ответа знающих людей.
-
3 часа назад, Xipho сказал:
А если попробовать найти координаты не игроков, а текстовых ников над ними, и свои данные записывать в эти тексты? тогда они автоматически будут туда подставляться.
Не e всех есть тестовые ники. Например у такнка его нет.
И у обычных зомби тоже, там только координаты. Тогда как быть?
-
Прощу прощения скрин загрузил не тот
Вообщем вот тут полностью игровая матрица 4 на 4 и следующие 6 значений это x и y по которым должно рисоваться хп.
-
Итак, снова всем привет. дошел до того что написал чит и уже работаю с видовой матрицей.
Проблема в чем... Матрицу нашел все хорошо, хп рисуется. Но вот в чем проблема
Оно рисуется вообще не в тех местах которых нужно. Я тут подумал что для каждой игры игровую матрицу нужно
будет подпиливать. Это так или нет? И если кто знает, подскажите в чем проблема.
Вот собственно код кенга, который немного перевел под шарп, использую его.
public static int world_to_screen(float[] from, out float[] to) {
to = new float[3];float w = 0.0f;
to[0] = viewMatrix[0, 0] * from[0] + viewMatrix[0, 1] * from[1] + viewMatrix[0, 2] * from[2] + viewMatrix[0, 3];
to[1] = viewMatrix[1, 0] * from[0] + viewMatrix[1, 1] * from[1] + viewMatrix[1, 2] * from[2] + viewMatrix[1, 3];
w = viewMatrix[3, 0] * from[0] + viewMatrix[3, 1] * from[1] + viewMatrix[3, 2] * from[2] + viewMatrix[3, 3];if (w < 0.01f)
return 0;return 1;
float invw = 1.0f / w;
to[0] *= invw;
to[1] *= invw;
int width = (int)(windowRectangle.Right - windowRectangle.Left);
int height = (int)(windowRectangle.Bottom - windowRectangle.Top);
float x = width / 2;
float y = height / 2;
x += Convert.ToSingle(0.5 * to[0] * width + 0.5);
y -= Convert.ToSingle(0.5 * to[1] * height + 0.5);
to[0] = x + windowRectangle.Left;
to[1] = y + windowRectangle.Top;
return 1;
}В нем ничего не изменилось, но почему то большие косяки с выводом.
И если кому надо https://github.com/remizovm/keng_esp_hack/blob/master/esp.c
Чит с ксго с которого был взят пример.
-
12 минуты назад, partoftheworlD сказал:
ну давай
Как связаться с тобой кроме форума?
-
2 минуты назад, partoftheworlD сказал:
Тогда единственный вариант прогонять все адреса через поиск указателей, а так без разницы какая версия игры, все делается аналогично, для всех игр на соурс движке.
Ну я вот искал скрин выше и там ничего ненаходит. Я вообще не понимаю как быть сейчас и что делать.
может все таки ты попробуешь через меня найти эти указатели?
-
44 минуты назад, partoftheworlD сказал:
Как оказалось, теперь смещение номера команды стоит до здоровья, раньше вроде было после, видимо я сбил тебя.
На видео с генерировал карту указателей, это не нужно просто мисклик
Вообщем, ничего нового не увидел. Я делал тоже самое но суть в том что у меня этого нету.
Версия у нас одинаковая, но у меня игра пиратская и идет не по стиму. Видимо проблемы в этом.
И поэтому я никак не могу найти нужную стуктуру. Как мне быть с пираткой? Как там найти то что мне надо?
-
18 минуту назад, partoftheworlD сказал:
Да компанию, но если зайти в онлайн все работает. Просто там 2 почти одинаковых адреса один работает с server.dll, второй с client.dll. Который относится server.dll он находит 3 указателя расположенные в server.dll, второй адрес уже найдет все для client.dll.
У меня нет скайпа, могу записать как искал.
Давай для онлайна. Сделаю в точности как у тебя будет.
А что есть? Как связаться можно кроме форума? Голосом
-
-
9 минут назад, partoftheworlD сказал:
в памяти номер команды и здоровья лежат рядом, если адрес верный. у номерка команды значения вроде бы 2 когда за зомби играешь и 1 когда за людей.
А ты про этот. Да все есть все лежит адрес на скрине висит - он правильный. Вот как то теперь надо найти этот (client.dll+0xXXXXXX)
-
3 минуты назад, partoftheworlD сказал:
Значит адрес здоровья не верный. Для поиска создаешь локальный сервер с ботами, ищешь здоровье свое, нажимаешь ctrl+b в ce откроется просмотр памяти, проверяешь есть ли по близости номер команды, если есть, то это адрес тебе нужен, если нет ищешь другой.
Значит адрес здоровья не верный. - Ну он верный точно, ну допустим что не верный
Для поиска создаешь локальный сервер с ботами - я сейчас в онлайн на сервере
проверяешь есть ли по близости номер команды - вот тут не понял что за номер команды?
Left 4 Dead 2 External - Чтение всех игроков
in Вопросы по взлому FPS игр
Опубликовано
Слушай а можно как нибудь разобраться в том почему проблемы у меня? Хотелось бы сделать экстернал и не использовать готовую подсветку а рисовода самому, только вот проблема со считыванием игроков.
Можно твои контакты? Скайп телегу?