![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Alkash |
|
||||||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Доброго времени суток господа, возникла небольшая проблемка. Есть некое приложение, допустим игра. В ней имеется строковое значение, которое необходимо считать. Известно, что оно является UNICODE строкой. Статический адрес, от которого можно добраться до строки выяснен - $00A786A0. Там лежит указатель на адрес со строкой - 10F907E0(динамический). При исследовании - было выяснено, что для того чтобы добраться до строки - необходимо повторить:
При попытке - получить значение этой строки - я получаю либо несколько букв, либо безумный набор цифр. Вопрос: как из памяти считать юникод-строку, при том что длинна её заранее неизвестна, но изестно что она не может быть более 16 символов? PS: Динамический адресс нахожу следующим способом:
Затем пробовал прочитать по значениям согласно иccледования при помощи:
В результате - а ничего хорошего в результате. Если читать как Pwidechar - вываливается с ошибкой, если как integer - то в результате - либо 3 символа, либо какая-то ерунда. Если как hex - то он не соответствует искомой строке. Заранее благодарен за помощь. Это сообщение отредактировал(а) Alkash - 14.1.2012, 15:40 -------------------- Подпись >> /dev/null |
||||||
|
|||||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
Пока могу сказать только 2 вещи:
Конечно вываливается - кто-то ж должен память под PWideChar выделить ReadProcessMemory желательно проверять, а отработала ли она. Для этого - анализировать результат и lpNumberOfBytesRead. Может, она просто ничего не читает, отсюда и мусор на выходе. Ну и до кучи тогда проверять уже и GetWindowThreadProcessId и OpenProcess. На кой в последнем PROCESS_ALL_ACCESS - непонятно, но вроде пойдет. |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Попробовал и вот такой способ. И тоже печально - получаю кучу $$$-) Может я смещение неправильно высчитываю? Весь мозг уже сломал. -------------------- Подпись >> /dev/null |
|||
|
||||
| Dik0n |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 11.5.2011 Репутация: 1 Всего: 10 |
Ничего не понял, но вот так превосходно читается:
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |