Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос ReadMemory нечитает русские символы

  • Автор темы Автор темы SQL
  • Дата начала Дата начала
Эксперт
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,480
Реакции
680
Это что санкции ????
Чтобы отсеить уникумов сразу скажу setlocale(LC_ALL, "Russian"); в коде есть
C:
Expand Collapse Copy
void ReadString(uintptr_t Addres, char* Buffer, int BufferSize) {
        NtReadVirtualMemory(Process::Process, (LPVOID)Addres, Buffer, BufferSize, 0);
    }

1727463524153.png
 
Это что санкции ????
Чтобы отсеить уникумов сразу скажу setlocale(LC_ALL, "Russian"); в коде есть
C:
Expand Collapse Copy
void ReadString(uintptr_t Addres, char* Buffer, int BufferSize) {
        NtReadVirtualMemory(Process::Process, (LPVOID)Addres, Buffer, BufferSize, 0);
    }

Посмотреть вложение 286698
ахаха, да, проблема точно в чтении памяти чужого процесса :roflanzdarova:
SetConsoleOutputCP(CP_UTF8); как вариант
 
Это что санкции ????
Чтобы отсеить уникумов сразу скажу setlocale(LC_ALL, "Russian"); в коде есть
C:
Expand Collapse Copy
void ReadString(uintptr_t Addres, char* Buffer, int BufferSize) {
        NtReadVirtualMemory(Process::Process, (LPVOID)Addres, Buffer, BufferSize, 0);
    }

Посмотреть вложение 286698
может всё дело в том, что сайз char - 255, и, возможно, что русские символы просто не укладываются в этот буфер, а нужен widechar_t?
 
Не проверял, я пока другими делами занят, но скажу сразу, реализовывал эту тему еще до такого как про нее написали, изменений нет только еще и строку обрезает, займусь как будет время поподробнее этим вопросом
 
Это что санкции ????
Чтобы отсеить уникумов сразу скажу setlocale(LC_ALL, "Russian"); в коде есть
C:
Expand Collapse Copy
void ReadString(uintptr_t Addres, char* Buffer, int BufferSize) {
        NtReadVirtualMemory(Process::Process, (LPVOID)Addres, Buffer, BufferSize, 0);
    }

Посмотреть вложение 286698

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

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

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