barsuuk

не получается получить ник игрока

9 сообщений в этой теме

пытаюсь с помощью readprocessmemory получить ник игрока 

на выходе получаю мусор

в чем ошибка??

char buf[9];
ReadProcessMemory(hProcess, LPCVOID(nameaddr), buf, 7, NULL);
printf("name chuvakov: %s ", buf);

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, barsuuk сказал:

на выходе получаю мусор

Что же по-вашему является мусором?

Возможные варианты:

1) Байты необходимо перевести в символы, согласно кодировке

2) Адрес не верный

0

Поделиться сообщением


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

на счет адреса уверен, так как жизни и другие данные вывести смог. А как перевести байты в символы? 

0

Поделиться сообщением


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

barsuuk, почему в ReadProcessMemory, у тебя в nSize 7, а должно быть 9?

Используется ли в тексте юникод?

Адрес, что нашли, работает с 1 командой?

Адрес статический или динамический?

Правильно нашли нужный адрес?

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, 2zolo2 сказал:

barsuuk, почему в ReadProcessMemory, у тебя в nSize 7, а должно быть 9?

Используется ли в тексте юникод?

Адрес, что нашли, работает с 1 командой?

Адрес статический или динамический?

Правильно нашли нужный адрес?

на счет юникода не уверен,как проверить?

адрес 100% рабочий так как если прибавить к этому адресу 140 попадем на ник 2 игрока или если прибавить 24 то попадем на жизни

 

получилось вывести 1 символ ника

если попытаться вывести сразу все символы, прога вылетает когда доходит до вывода

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, barsuuk сказал:

на счет юникода не уверен,как проверить?

адрес 100% рабочий так как если прибавить к этому адресу 140 попадем на ник 2 игрока или если прибавить 24 то попадем на жизни

 

получилось вывести 1 символ ника

если попытаться вывести сразу все символы, прога вылетает когда доходит до вывода

 

Увы, в c++ не силен, чем и грешен) Но все же, ваша задача скорее всего в том, чтобы перевести байты в тест, сделать это можно например в онлайн декодерах к примеру, а после посмотреть как это можно сделать на c++ в яндексе или гугле)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Trix сказал:

Увы, в c++ не силен, чем и грешен) Но все же, ваша задача скорее всего в том, чтобы перевести байты в тест, сделать это можно например в онлайн декодерах к примеру, а после посмотреть как это можно сделать на c++ в яндексе или гугле)

В смысле байты перевести в текст? Для этого и существуют различные типы переменных, char* для хранения ascii символов, wchar_t* для  unicode 

 

ТС, ты хотя бы скрин со структурой кинь.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
char buffer[32];
ReadProcessMemory(hProcess, reinterpret_cast<PBYTE*>(nameaddr), &buffer, 32, 0);
printf("%s", buffer);

или так

 

char buffer[32];
ReadProcessMemory(hProcess, reinterpret_cast<PBYTE*>(nameaddr), &buffer, 32, 0);
cout << buffer << endl;

 

TEuhanYK7LA.jpg

Если будет юникод можно использовать wcstombs, чтобы преобразовать в char

Изменено пользователем partoftheworlD
0

Поделиться сообщением


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

ладно, спасибо, пойду гуглить)

 

спасибо огромное))буду тестить

 

 

получилось!!))

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас