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

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


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

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

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

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

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

 

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

4 часа назад, barsuuk сказал:

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

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

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

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

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

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

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

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

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

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

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

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

3 часа назад, 2zolo2 сказал:

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

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

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

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

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

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

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

 

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

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

 

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

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

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

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

 

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

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

 

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

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

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

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

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

 

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

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

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
Ссылка на комментарий
Поделиться на другие сайты

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

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

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