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

[Python] Как пройти циклом по структурам игроков, если смещение разное


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

Хочу вывести ники всех игроков в cs1.6. Нашел их структуру игроков, адреса от ника до ника: 

Спойлер

{'RealAddress': '05AFFF15'}
{'RealAddress': '05B000FC'}
{'RealAddress': '05B0034C'}
{'RealAddress': '05B0059C'}
{'RealAddress': '05B007EC'}
{'RealAddress': '05B00A3C'}
{'RealAddress': '05B00C8C'}
{'RealAddress': '05B00EDC'}
{'RealAddress': '05B0112C'}
{'RealAddress': '05B0137C'}
{'RealAddress': '05B015CC'}
{'RealAddress': '05B0181C'}
{'RealAddress': '05B01A6C'}
{'RealAddress': '05B01CBC'}
{'RealAddress': '05B01F0C'}
{'RealAddress': '05B0215C'}

 

это их адреса. 05B000FC -  05AFFF15 =  1E7(hex)  или 487 (dec)
                            05B0059C - 05B0034C =  250(hex) или 592 (dec)
Если проходить циклом, по смещением 487(dec), то на ники не выхожу.... Если со смещением 592 - тоже самое.

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

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

Если проходить циклом, по смещением 487(dec), то на ники не выхожу

А самый первый адрес 

{'RealAddress': '05AFFF15'}

это что?

Только он один отличается,

А так - у тебя смещение 250 от игрока к игроку.

 

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

Только что, Garik66 сказал:

А самый первый адрес 


{'RealAddress': '05AFFF15'}

это что?

Только он один отличается,

А так - у тебя смещение 250 от игрока к игроку.

 

Это самый первый ник(мой)

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

1 минуту назад, Garik66 сказал:

И тогда вопрос - от какого адреса начинаешь цикл?

 

От своего(05AFFF15 ). Ведь может в этом адресе может быть не только мой ник, а другого игрока. Так  уже было.

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

Только что, GlKorol сказал:

От своего(05AFFF15 ). Ведь может в этом адресе может быть не только мой ник, а другого игрока. Так на серверах.

Для эксперимента - попробуй сделать цикл от второго адреса - посмотри будут ники?

5 минут назад, GlKorol сказал:

От своего(05AFFF15 ).

ЗЫ: Появилась кое-какая мысль.

Заодно посмотри, а что лежит в этом адресе - 05AFFEAC

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

4 минуты назад, Garik66 сказал:

Для эксперимента - попробуй сделать цикл от второго адреса - посмотри будут ники?

Получилось. Но код вышел не самый красивый(я сразу всё оформил). 
 

arrayUsers = HW + 0x11CFF15
print(read_memory(PROCESS.handle,arrayUsers,'s',lentext=350))
arrayUsers += 0x1e7
print(read_memory(PROCESS.handle,arrayUsers,'s',lentext=350))
for i in range(31):
    arrayUsers += 0x250
    print(read_memory(PROCESS.handle,arrayUsers,'s',lentext=350))

P/s функция readmemory считывает участок памяти.

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

4 минуты назад, GlKorol сказал:

Получилось.

И все таки глянь, может не заметил вот это:

11 минут назад, Garik66 сказал:

Заодно посмотри, а что лежит в этом адресе - 05AFFEAC

 

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

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

И все таки глянь, может не заметил вот это:

 

image.png
Вот. 
Да я не заметил:(
p/s это при игре с ботами, не стал заходить на сервер

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

5 минут назад, Garik66 сказал:

:D Адрес, который я написал выше.

 

image.png

Хм... На первый взгляд там ничего интересного
Просмотрел полный текст, вот: \bottomcolor\3\cl_dlmax\128\cl_lc\1\cl_lw\1\skin\20338545ea\topcolor\0\cl_updaterate\101\rate\25000\hwp\1\name\GlKorol\*sid\0\model\terrorror

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

2 минуты назад, Garik66 сказал:

Да. Мысль оказалось не верной. 

У меня еще один вопрос, не знаете способы определить начало структур игроков. Мне пришлось добавлять максимум ботов, 31, и искать самый маленький адрес. Есть другие способы?

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

Только что, GlKorol сказал:

У меня еще один вопрос, не знаете способы определить начало структур игроков. Мне пришлось добавлять максимум ботов, 31, и искать самый маленький адрес. Есть другие способы?

Поищи на форуме - было уже несколько подобных тем.

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

2 часа назад, GlKorol сказал:

Есть другие способы?

Найти нормальную структуру, а от неё выйти на массив со всеми адресами игроков. Так у тебя будут смещений статичные для всех игроков для определенной характеристики/информации по игроку.

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

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

Найти нормальную структуру, а от неё выйти на массив со всеми адресами игроков. Так у тебя будут смещений статичные для всех игроков для определенной характеристики/информации по игроку.

Что вы подразумеваете под нормальной структурой?

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

8 часов назад, GlKorol сказал:

Что вы подразумеваете под нормальной структурой?

Тебе достаточно найти 1 класс, чтобы получить информацию об игроке.
Т.е выходишь на класс CBaseEntity/CBasePlayer, через здоровье, бронь, координаты и т.д, а после ищешь где в этой структуре находится имя игрока. Теперь достаточно найти список игроков и гарантированно, что у всех игроков в этом списке по найденному смещению будет располагаться имя игрока. Плюс на github есть исходники движка gold source, так что нахождение разных смещений будет очень простым.

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

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

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

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