Здравствуйте, гость ( Вход | Регистрация )

> lua, readmem, unicode, Считать из памяти строку в формате UTF-16
фонарик
сообщение 19.2.2024, 14:37
Сообщение #1


****

Apprentice
Сообщений: 162
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Здравствуйте. Не знаю правильно ли я думаю, но пилот не умеет понимать строку в юникоде. Из интернетов были добыты эльфийские инструменты плагины, которые (если судить по светящимся надписям на них) как раз созданы магами-чародеями программистами для таких задач. Но тут вспоминается басня Крылова "Мартышка и очки". На рабочем столе уже не осталось места для размещения очередного артефакта. И вот в печалях, в довлеющем ощущении тяжести и бренности бытия, спешу я снова к вам в лавку алхимиков на форум за советами и помощью.

Вот, например, у одного человека, создаваемый велосипед заканчивается чтением памяти:
Код
Name = readmem ("0x07CCFFD8", "S", 16)
В Name записывется какое-то нечто, вообще не связанное с реальностью. По данному адресу находится:
Код
1D 04 30 04 31 04 3E 04 40 04
что в переводе с древнего наречья с UTF-16 читается как слово "Набор".

То ли я где-то прочёл, то ли кто-то сказал, но я почему-то знаю что необходимо обзавестись синей изолентой плагином, который нужно правильно причесать, положить в правильное место и создать заклинание на ассемблере правильную функцию, которая и считает из памяти всё в правильном виде. Но без вашей помощи мне не справится, я вообще даже не понимаю, правильно ли я в Воронеж ехал сделал ли я хоть что-то правильное в своих попытках. Пожалуйста, поделитесь советом, как же всё-таки данные из памяти правильно приготовить? Легенды гласят, доподлинно известно, что это строка в кодировке UTF-16.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Cockney
сообщение 22.2.2024, 20:40
Сообщение #2


********

Master
Сообщений: 1.404
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22738
Пользователь №: 16.156



Цитата
Можно этот момент поподробнее? Там есть какие-то лимиты по страндарту?


Ну, а какие там стандарты...из описания функция конвертит utf16 -> multi byte (до 4 байтов включительно на 1 символ в случае если конвертация в utf8 происходит, до 2 байт если конвертация в соотв. кодовую таблицу).

Цитата
Можно использовать один, раздавать непересекающиеся указатели, все кошерно. Но мне нужно astring закидывать в начало буфера. Соответственно, если я считаю кусок памяти в некоторый оффсет буфера, а потом у меня не влезет astring, то ресайз делать вообще не хорошо. Или может можно посчтитать len до копирования памяти из другого процесса (без инжектов)?


Не осилил, особенно когда речь пошла про другой процесс. Похоже на реальный быдлокод.

Цитата
Вообще идейно человек может считать n элементов любого типа, функция вернет первый элемент, в случае строки - вернет всю строку типа lua string. Но вот буфер я хочу оставить открытым для пользователя. Т.е. будет свободный доступ в виде массива к каждому считанному элементу. Соответственно будет удобно искать некторые структуры для которых сложно найти статичную цепочку указателей, возможность посимвольной переборки строк. Вобщем красота.


абстрактный конь в вакууме. какие элементы, какого типа, какие структуры с произвольным поиском. а как это еще упаковывается в MANAGED луа строку еще интереснее.



В нормальных системах/языках/библиотеках принято оптимизировать за счет всяких пулов строк/буферов, различных кешей. А городить какие то там подбуферы без четкого понимания что куда и как ляжет и как это все сожрет компилятор/интерпретатор - себе дороже, Лучше сделать с реаллокациями но предсказуемым поведением + найти вектор оптимизации другой
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
фонарик   lua, readmem, unicode   19.2.2024, 14:37
DarkMaster   Задача именно работать с юникодом или просто счита...   19.2.2024, 15:37
фонарик   Задача именно работать с юникодом или просто счит...   19.2.2024, 15:43
DarkMaster   --lua log"clear" local ffi = require...   19.2.2024, 16:01
фонарик   Тебя интересует функция export.unicode(address, le...   19.2.2024, 16:22
DarkMaster   никаких кавычек. значения переданы верно. рабочее ...   19.2.2024, 16:25
фонарик   никаких кавычек. значения переданы верно. рабочее ...   19.2.2024, 16:27
DarkMaster   считай как string. есть зябрики?   19.2.2024, 16:29
фонарик   А еще в логе перед строкой с nil есть строка с соо...   19.2.2024, 16:30
DarkMaster   --lua log"clear" local ffi = require...   19.2.2024, 16:36
фонарик   что в логе теперь? 16:37:50 70 (, 0...   19.2.2024, 16:38
DarkMaster   --lua log"clear" local ffi = require...   19.2.2024, 16:42
фонарик   Пробуй. Там читалось окно пилота =) я тестил то на...   19.2.2024, 16:48
DarkMaster   Это больше спасибо cirus и Cockney, которых я сего...   19.2.2024, 16:50
фонарик   Это больше спасибо cirus и Cockney, которых я сего...   19.2.2024, 17:05
DarkMaster   естественно просмотрел. добавьте в конце моего скр...   19.2.2024, 17:26
фонарик   Ну вот, вообще теперь красота :lol: Здоровья и мир...   19.2.2024, 17:42
DarkMaster   А теперь немного о быдло коде =) Меня очень сильно...   19.2.2024, 18:52
Cockney   Так какой вопрос то ?) Тут поинт в том, что два...   19.2.2024, 19:25
DarkMaster   Ну вроде как да, по логике... Но проверка идет то...   19.2.2024, 19:31
Cockney   В общем случае думаю что не прокатит, т.к. там не ...   19.2.2024, 20:02
Aqualon   Если вам просто надо спарсить utf8 строку из памят...   20.2.2024, 2:34
DarkMaster   Можно этот момент поподробнее? Там есть какие-то ...   22.2.2024, 16:42
DarkMaster   имелось ввиду возможность прочитать объявленный п...   12.3.2024, 18:44
Cockney   тут лучше на примерах, задача то какая ? пока я то...   12.3.2024, 22:21
DarkMaster   опыт с финдимиджем показал, что malloc столько жр...   13.3.2024, 18:12
Cockney   короче как я понял ты костылишь сериализатор/десер...   15.3.2024, 21:20


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 24.11.2025, 17:38
Designed by Nickostyle