Перейти к содержанию

[Counter-Strike: Source] Не могу найти нужные офсеты


Гость Spereps

Рекомендуемые сообщения

При написании Чита esp-hack возникла проблема с поисками нужных офсетов. В качестве инструмента использую cheat engine 6.6. При помощи различных видео-уроков, которые висят на просторах Интернета, смог найти  структуру игрока. Вот, в кратце, как я это сделал:

1)Нашёл адрес здоровья

2)забил в pointer scan найденный мною адрес

3)Создал структуру(cntrl+b cntrl+d)

 

В данной структуре отыскал структуру игрока, где находилась вся информация о нем(здоровье, броня, команда, координаты и т.д.)

 

Теперь, собственно, перейдём к самой сути. Определить смещения здоровья, брони и координат было несложно. С номером команды чуть сложнее, но благодаря роликам на YouTube я смог узнать, что "теры" - это 2, а "контр-террористы" - это 3.

 

Таким образом, теперь на руках у меня есть:

oLocalPlayer - из него я, собственно, и создал структуру

oHealth - офсет здоровья

oTeam - офсет команды

oArmor - офсет брони(он, впрочем, не нужен)

oPlayerLocation - офсет координат игрока

 

Однако, для создания esp-Чита этого недостаточно. Во многих видеоуроках по созданию читов для CS я видел, что там используется oEntityList и oEntityLoopDistance. Вот только, если про найденные мною офсеты в видеоуроках что-то да рассказывается, то про oEntityList и oEntityLoopDistance не говорится ничего. Ни, как найти,  ни, что это такое. 

 

Существует, конечно же, "дампер" офсетов(для CS:GO такой точно есть, про cs:s не знаю), однако я хочу научиться сам искать смещения и понять назначения некоторых из них(oEntityList и oEntityLoopDistance). 

 

Вообщем, прошу подсказать мне, как найти нужные смещения и, если имеются ошибки в моих действиях, указать мне на них.

 

P.S. Прошу прощения у модерации за предыдущую неоформленную по всем правилам тему. Просто мозг уже кипит, ибо весть день потратил на то, чтобы понять, как с помощью CE искать нужные офсеты, поэтому и не догадался заглянуть в правила форума.

Ссылка на комментарий
Поделиться на другие сайты

18 минут назад, Spereps сказал:

Ни, как найти,  ни, что это такое. 

Это же вранье, сотни уроков на разных языках есть как находить их и что это такое.

 

18 минут назад, Spereps сказал:

то про oEntityList и oEntityLoopDistance

Список игроков и дистанция между структурами игроков.

 

Не понятно как ты умудрился найти локальную структуру, но не структуру со списком игроков, ну да ладно.?

 

Можешь мой экспериментальный способ нахождения структур LocalPlayer и EntityList попробовать.

 

Либо традиционный, находишь правильный адрес здоровья, как его определить?

Нужно зайти в любой дизассемблер x64dbg/IDA и найти 2 значения "m_iHealth" и "m_iTeamNum" ,взять их смещения, они обычно на инструкцию выше и выглядит как push 0xAB, где 0xAB смещение, так же смещения у тебя есть и в структуре локального игрока, в общем тебе нужно посчитать дистанцию между ними, это нужно для того чтобы проверить адрес здоровья. Итак, посчитал уже дистанцию между здоровьем и номером команды, теперь ищешь здоровье, отсеиваешь до минимума и выделяя каждый адрес нажимаешь CTRL+B, дальше смотришь в окошко с хекс значениями, тут нам и нужна дистанция между здоровьем и номером команды, если она совпадает, то адрес правильный и на него вешаешь поиск указателей 1 уровневый, если нет, то ищешь дальше. Правильный адрес здоровья только один, остальные его копии и никак не помогут в поиске нужных тебе структур. Теперь, как только нашлись указатели(их обычно 5-7), первый указатель будет указателем на LocalPlayer(твою структуру), второй указатель будет указателем на EntityList(список игроков), остальные указатели тебе не нужны, они работают с левыми структурами которые ни как не понадобятся в написании ESP, но можешь поковырять их ради интереса.

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

Спасибо, что откликнулись!

Цитата

Нужно зайти в любой дизассемблер x64dbg/IDA и найти 2 значения "m_iHealth" и "m_iTeamNum" 

Подходит ли ollyDbg? Прочитал на одном англоязычном форуме, как через него находить m_iHelth, однако на этапе поиска возникли проблемы. В Client.dll я заинжектится, далее щелкнул правой кнопкой мышки на дизассемблерованном коде, выбрал вкладку "поиск" -> все строки со ссылками. Там, собственно, я и искал "m_iHelth", но, к сожалению, не преуспел в этом.

 

26 минут назад, partoftheworlD сказал:

Это же вранье, сотни уроков на разных языках есть как находить их и что это такое.

Видел кучу уроков на с++, однако в нем я не силён от слова совсем. Я пока владею только с#. На нем, кстати, недавно и нашёл видеоурок по движку для трейнера, от одного из администраторов данного сайта. Таким образом я и наткнулся на этот ресурс, чему неимоверно рад, ибо ранее находил лишь англоязычные форумы по созданию читов. Серия видеоуроков, к сожалению, уже почти год как не выкладывается, видимо из-за нехватки времени у человека. И самое обидное, что это единственная качественная серия уроков, найденная мной на просторах youtube. 

 

Другие видеоуроки с применением с# либо тоже "заморожены", либо их авторы, откровенно говоря, плохо поясняют свой код. Чаще всего они вообще не до конца понимают, что делают. А как я могу научиться что-то делать по видео, где автор такой же новичок, как и я?

 

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

 

---

 

Обязательно завтра попробую ваш способ поиска списка игроков. Если возникнут вопросы, надеюсь на ваши подсказки)

 

Сейчас же лягу спать, ибо голова трещит от сегодняшних потуг отыскать нужные мне офсеты.

 

Еще раз спасибо за вашу помощь!

Ссылка на комментарий
Поделиться на другие сайты

28 минут назад, Spereps сказал:

Подходит ли ollyDbg?

Да, но слишком уж старый инструмент. x64dbg и обновляет каждые пару недель и хорошая, да и наверно единственная замена ollydbg, 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, Spereps сказал:

Серия видеоуроков, к сожалению, уже почти год как не выкладывается, видимо из-за нехватки времени у человека.

Совершенно верно, пока, к сожалению, не хватает времени даже на короткие уроки по основам ассемблера.

 

5 часов назад, Spereps сказал:

единственная качественная серия уроков, найденная мной на просторах youtube

Спасибо за высокую оценку качества моих уроков :)

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, Xipho сказал:

Совершенно верно, пока, к сожалению, не хватает времени даже на короткие уроки по основам ассемблера

Что же, Хатико ждал, и я подожду)

 

12 часов назад, partoftheworlD сказал:

Да, но слишком уж старый инструмент. x64dbg и обновляет каждые пару недель и хорошая, да и наверно единственная замена ollydbg, 

Действительно, поставил x64dbg - стало намного удобнее. Решение же той проблемы (не мог найти m_iHealth в client.dll) я нашёл. Не знаю почему, но в client.dll по адресу ...\Steam\steamapps\common\Counter-Strike Source\cstrike\bin\client.dll просто-напросто не было строки m_iHealth. Но, если подключиться к самому процессу "hl2" через x64dbg, найти там модуль client.dll, то тогда, m_iHealth волшебным образом появляется. Не знаю, с чем это связано, ибо с ассемблерами и т.д. я пока на "Вы".

 

---

 

Спасибо, partoftheworlD, благодаря вашим подсказкам мне удалось найти oEntityList (почему-то в прошлый раз, когда я использовал pointer scan, у меня нашёлся один-единственный указатель. В этот раз, к счастью, их действительно было 5). Только вот теперь появился вопрос по поводу oEntityLoopDistance, т.е. дистанцией между структурами игроков. Как её искать? взять адресс oLocalPlayer и отнять  от него oEntityList? 

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, Spereps сказал:

Как её искать?

Поочередно открываешь структуры в EntityList и смотришь на смещение примеру здоровья, если оно там есть, то считаешь между ними дистанцию, к примеру в EntityList открываешь по смещению 0x10 указатель, ищешь здоровье по смещение 0xFC к примеру или номер команды, если оно там есть, то запоминаешь или записываешь смещение на указатель в entitylist, дальше открываешь следующую структуру 0x14 в ней ничего нет, пропускаешь и т.д пока не найдешь очередную структуру со здоровьем по тому же смещению 0xFC или номером команды, нашел вторую структуру к примеру по смещению 0x28, теперь смещение на структуру второго игрока отнимаешь от смещения на первого игрока и получаешь "entityloop". 0x28 - 0x10 = 0x18(enitityloop) 0xFC смещение здоровья для примера.

 

8 минут назад, Spereps сказал:

Не знаю, с чем это связано

Некоторые  строки валв пакует, чтобы старые уроки по взлому вызывали трудности с поиском.

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.