Я считал с помощью нестандартного компонента ProcMemory(в поиске легко найти) текст из процесса в кодировке unicode 24 байта (так пишет ArtMoney, с помощью которого и узнал смещение). Вместо текста (test) без скобок я получил число (6619252) тоже без скобок, также ради интереса пытался получить текст (1) и получил число (49). Вот вопрос, как из полученных чисел восстановить текст? Компонент ProcMemory считывал в режиме Dword.
Если я изначально пытался реализовать считывание не правильно, прошу объяснить как сделать правильно.
Этот топик читают: Гость
Ответов: 9
Рейтинг: 1
|
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Vopros писал(а): пытался получить текст (1) и получил число (49). Вот вопрос, как из полученных чисел восстановить текст? Читать надо парами байт, а не DWORD, для цифр, знаков и латинского алфавита один байт равен 0, второй - код символа. В HiAsm есть элементы перевода UNICODE в Ansi, и перевода чисел в символы, вот Вам пример вашего чтения единицы:
|
|||
карма: 1 |
|
Ответов: 9
Рейтинг: 1
|
|||
Как сделать чтение парами байт даже не представляю.
Из 49 получить 1 у меня тоже получилось, а вот из 6619252 test нет. |
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Vopros, это всего 2 символа Unucode, e и t , задом-наперёд потому, что читаете как DWORD, а читать надо побайтовопосимвольно - как строку
code_27056.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_27056.txt [452B] [178] |
Ответов: 273
Рейтинг: 29
|
|||
Лучше посмотри на этот фрагмент памяти в живую, в отладчике (или в CheatEngine), чтобы понять формат строки.
Если не разберешься сам - скинь скрин (или копипаст) фрагмента памяти, народ поможет определить формат строки, и, соответственно, как с ней работать из-под HiAsm, какие преобразования делать. ------------ Дoбавленo в 14.14: Вижу, уже разобрались. |
|||
карма: 0 |
|
Ответов: 9
Рейтинг: 1
|
|||
Да, разобрался заглянув в редактор памяти ArtMoney, большое спасибо, Индиго и Томас.
|
|||
карма: 1 |
|
6