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

Counter Strike Source - часть 3


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

Всем привет ! 

на днях писал код для вывода hp игрока и все прекрасно работало на созданном мной сервере(локальный , с ботами), а вот на онлайн серверах hp не отображает (код смотрел у КЕНГА (сапсибо ему за это!:)))

 

искал через "server.dll"

c другими библиотеками вообще ничего не отображает даже в локальном сервере!("client.dll" , "engine.dll")

"код1":
  Показать контент

в СЕ отсеивал хп и нашел 2 указателя на структуры игроков.

14710864.jpg

в коде использую 1 указатель (и с ботами работает), а 2 указатель не выводит hp (56563456 - такие числа) (и на онлайн сервере тоже не выводит)

 

 

возможно я не в том месте "х" поставил

(

как я менял :

было = 00562D7C;

стало = 0х562D7C;

)

 

и еще вопрос : как использовать цикл на 64 , а выводил только реальных игроков или ботов

Просто ботов со мной 6 . цикл на 64 и он все 64 hp показывает по 100 hp у несуществующих.

Пытался реализовать с помощью read_of_memory_bytes , но возвращает всегда 1, что логично (так как там хранится тоже что-то)

"код2":

  Показать контент

 

PS : У меня Css v34 пиратка

// @IzerodayI, посети раздел фак. Garik66

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

  В 04.07.2017 в 10:14, IzerodayI сказал:

искал через "server.dll"

Показать  

Когда ты подключаешься к онлайн-серверу, эта библиотека не используется. Она используется только для создания сервера (когда сам хостишь).

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

  В 04.07.2017 в 10:36, Xipho сказал:

Когда ты подключаешься к онлайн-серверу, эта библиотека не используется. Она используется только для создания сервера (когда сам хостишь).

Показать  

тогда не подскажешь какую библиотеку надо искать ? 

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

  В 04.07.2017 в 11:07, IzerodayI сказал:

тогда не подскажешь какую библиотеку надо искать ? 

Показать  

client.dll

 

  В 04.07.2017 в 10:14, IzerodayI сказал:

как использовать цикл на 64

Показать  

 

существуют проверки типа подключен ли игрок, жив он или нет и  подобные, в цикле это все фильтруешь и выводишь только реальных игроков.

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

  В 04.07.2017 в 10:14, IzerodayI сказал:

 

искал через "server.dll"

c другими библиотеками вообще ничего не отображает даже в локальном сервере!("client.dll" , "engine.dll")

Показать  

 

  В 04.07.2017 в 14:12, partoftheworlD сказал:

client.dll

Показать  

пробовал , таких библиотеки даже 2 находит , не работает , может я кривой)

 

PS и с первым клиентом и со вторым , не работает.

if (strstr(szModName, SERVERDLL) != 0)
				{
					cout << "server.dll base : " << HModProc[i] << endl;
					server_dll = (DWORD)HModProc[i];
					//break;
				}

break использовал для 1-го клиента

Может быть , что там другие оффсеты?

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

вангую, у тебя сам поиск модулей коряво работает, т.к находит steamclient.dll и client.dll

  В 04.07.2017 в 14:17, IzerodayI сказал:

Может быть , что там другие оффсеты?

Показать  

и да смещения там точно другие.

 

 

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

  В 04.07.2017 в 14:18, partoftheworlD сказал:

и да смещения там точно другие.

Показать  

А как их искать через СЕ, так-же?

когда я отсеивал по hp , СЕ находил только server.dll (наверно , потому ,что локальный сервер был) - скрин сверху есть

То есть надо искать оффесеты на онлайн сервере?

И библиотека мне нужна просто client.dll ?

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

  В 04.07.2017 в 14:24, IzerodayI сказал:

А как их искать через СЕ, так-же?

Показать  

ну да, поиск указателей 1 уровень, найдется 5-6 указателей, значит правильный адрес использовал.

проверить значение можно высчитав смещение от m_iHealth до m_iTeamNum обычно 8 байт, но не всегда., лучше перепроверить.

 

  В 04.07.2017 в 14:24, IzerodayI сказал:

То есть надо искать оффесеты на онлайн сервере?

Показать  

Нет, достаточно локального.

 

  В 04.07.2017 в 14:24, IzerodayI сказал:

И библиотека мне нужна просто client.dll ?

Показать  

Да

 

upd

на счет проверки адреса здоровья

 

 

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

  В 04.07.2017 в 14:52, partoftheworlD сказал:

Нет, достаточно локального.

Показать  

как я сейчас сделал :

1 зашел в ксс ,

2 создал сервер с ботом ,

3 запустил СЕ ,

4 открыл процесс ксс ,

5 и поставил 8байт 

6 начал искать своё хп 

7 2 адреса осталось 

8 попытался найти указатель на адрес и там пусто (в 2 адресах)

 

где я ошибся ? что я сделал не так?

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

  В 04.07.2017 в 15:18, IzerodayI сказал:

5 и поставил 8байт 

Показать  

тут, значение здоровья int(4 байта)

а 8 байт это разница между здоровьем и номером команды

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

проанализировав ситуацию , я понял , что моя потенциальная жертва это client.dll

как я сейчас сделал (дубль2) :

1 зашел в ксс

2 создал сервер с ботом ,

3 запустил СЕ ,

4 открыл процесс ксс ,

5 и поставил 4байт 

6 начал искать своё хп 

7 обнаружил примерно 8 адресов 

8 и каждого нашел указатель на адрес

[spoiler= "screen" ]

[img =https://cloud.mail.ru/public/Aeh6/beirRojns ]

 

-----------------------------------------------------------------------------------------------------------------

 

[img =https://cloud.mail.ru/public/ApRT/c5W25qr8J ]

[/spoiler]

 

просканировал все 8 адресов , где нашел только 3 клиента,

выбрав жертву , я все три адреса просканировал на структуры.

 

"client.dll"+004035C0 и только здесь обнаружил своё хп 

[img =https://cloud.mail.ru/public/BfZe/ToonDaeyQ ]

 

но я не вижу(возможно не знаю) 8байтовый сдвиг на m_iTeamNum

 

хп находилось в 0000 структуре

 

[img =https://cloud.mail.ru/public/4vG4/ajTgMbCC3 ]

 

я то нашел?)

Благодарю за ответы =)

Изменено пользователем IzerodayI
были ошибочки
Ссылка на комментарий
Поделиться на другие сайты

  В 04.07.2017 в 17:25, IzerodayI сказал:

не подскажешь, когда оно примерно будет?=)

Показать  

сейчас если на l4d2 показывать буду, либо минут через 40-60 на ксго

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

  В 04.07.2017 в 17:26, partoftheworlD сказал:

сейчас если на l4d2 показывать буду, либо минут через 40-60 на ксго

Показать  

у тебя канал на ютюбе? если да ссылку скинешь?

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

  В 04.07.2017 в 18:25, IzerodayI сказал:

partoftheworlD благодарю , сейчас разберусь)

Показать  

Вообще-то. вопрос уже неоднократно подымался. Посмотри ещё и этот топик. 

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

Я думаю, что если возникает много однообразных вопросов по одной и той же теме (или игре), то это стоит оформлять в FAQ и закреплять где-то в верху раздела.

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

толи я уже все.. , то ли лыжи не едут

приложу все скрины с СЕ 

я отсеиваю хп , как на видио (я так делал и раньше) 

"screens":

  Показать контент

и ничего нету!

это я такой кривой?)

или здесь есть мой адрес? 

// @IzerodayI, вижу, что так и не разобрался, как делать спойлеры. Посмотри этот "Bидео-FAQ для новичков."

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

  В 04.07.2017 в 21:11, IzerodayI сказал:

это я такой кривой?)

или здесь есть мой адрес? 

Показать  

 

Ты видимо не понял, у меня смещения для l4d2 было здоровья EC и команды ‭E4‬, тебе надо в отладчике глянуть смещения m_iHealth и m_iTeamNum, а после посчитать разницу. У меня вышло так что от здоровья до номера команды -8 байт, у тебя может быть другое значение.

Эта проверка не обязательна, но так ты точно будешь знать какой адрес использовать, чтобы все не прогонять ,через поиск указателей.

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

  В 04.07.2017 в 21:22, partoftheworlD сказал:

 

Ты видимо не понял, у меня смещения для l4d2 было здоровья EC и команды ‭E4‬, тебе надо в отладчике глянуть смещения m_iHealth и m_iTeamNum, а после посчитать разницу. У меня вышло так что от здоровья до номера команды -8 байт, у тебя может быть другое значение.

Эта проверка не обязательна, но так ты точно будешь знать какой адрес использовать, чтобы все не прогонять ,через поиск указателей.

Показать  

Все, я понял, все хп игроков хранится в одной структуре "client.dll"+004035C0  

и уже в ней хранится игроков(ботов) хп и их команда(наверное)

доказательства прилагаю.

  Показать контент

возникшие вопросы :

1) какой сдвиг между хп игроков, как его посчитать . чтобы зациклить?

2) как найти кол-во игроков ? (пытался сделать на онлайн сервере (долго отсеивая ,когда игроки заходили и выходили), получил 3 адреса , но у них не было указателей на адреса(пусто было. даже библиотеку не нашел), может он статический?)

3) и то , что выше оффсета хп это команда, и если да . то какой сдвиг?

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

 

  В 05.07.2017 в 16:07, IzerodayI сказал:

1) какой сдвиг между хп игроков, как его посчитать . чтобы зациклить?

Показать  

 

Смещение n игрока - смещение n-1 игрока, если здоровье находится в общей структуре часто такое бывает в одиночных играх, если же в онлайн играх, то в них используется единый класс для хранения структур всех игроков, чтобы найти сдвиг, надо вставить адрес указателя на общую структуру в программу которая работает со структурами типа Reclass или встроенного в CE Dissect Data/Structures, по 0 смещению будет указатель на структуру твоего игрока, тебе надо просто прокликать по указателям и посмотреть, есть ли по смещению твоего здоровья, ещё чье либо хп, первый найденный указатель в котором будут совпадать смещения на здоровье например и будет являться сдвигом т.е. (0x0 смещение на указатель на структуру локального игрока, 0x10 смещение на указатель на структуру 2-го игрока) 0x10 - 0x0 = 0x10 это и будет сдвиг.

 

на примере csgo

 

K3xknvw5tzY.jpg

 

  В 05.07.2017 в 16:07, IzerodayI сказал:

2) как найти кол-во игроков ? (пытался сделать на онлайн сервере (долго отсеивая ,когда игроки заходили и выходили), получил 3 адреса , но у них не было указателей на адреса(пусто было. даже библиотеку не нашел), м

Показать  

 

Не помню, проще циклом прогнать с проверкой на хп и состояние подключения, можно пинг использовать для отсева.

 

 

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

  В 04.07.2017 в 20:51, keng сказал:

Я думаю, что если возникает много однообразных вопросов по одной и той же теме (или игре), то это стоит оформлять в FAQ и закреплять где-то в верху раздела.

Показать  

Тык.

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

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

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

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