Сейчас на форуме: asfa, _MBK_, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› ReadProcessMemory
Посл.ответ Сообщение

Ранг: 13.6 (новичок)
Активность: 0.010
Статус: Участник

Создано: 24 февраля 2009 20:15 · Поправил: stub
· Личное сообщение · #1

Добрый вечер.
Вопрос следущего характера:
с помощи Ольги я приатачив. к процессу
Делаю поиск сторки.Нашлась. По данному адресу у меня
в дампе лежит эта строки.
Читаю ее с помощью ReadProcessMemory с своего приложения.Дк вот у меня она
лежит всегда под одному адрессу, а вот если запустить приложения с другой машины, то адресс будет совсем
другим, а по моему - одни нули.
Вопрос:
каким образом сделать базонезависемый код для чтения строки.??
Заметил что раница между адрессам равна
MAXWORD = 65535+1
Спасибо.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 24 февраля 2009 22:08
· Личное сообщение · #2

Если память выделяется динамически через: HeapXXX, Global/Local/Alloc, то адрес будет разным
файл бы

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 13.6 (новичок)
Активность: 0.010
Статус: Участник

Создано: 24 февраля 2009 22:19
· Личное сообщение · #3

я понимаю что будет разным.
Совета так и не увидел.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 24 февраля 2009 22:28
· Личное сообщение · #4

а я файла

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 24 февраля 2009 22:33
· Личное сообщение · #5

stub пишет:
Вопрос:
каким образом сделать базонезависемый код для чтения строки.??

Тебе ж объясняют, то простого ответа нету. Смотри код в IDA - как выделяется память где хранятся строки? Если это глобальная переменная, то она просто в сегменте данных. Если локальная, то на стеке ф-ции. Может и динамическая - malloc()/HeapAlloc()/VirtualAlloc(). В последнем случае тебе придётся остановить прогу в конкретном месте и прочитать адрес из переменной или регистра.



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 24 февраля 2009 22:46
· Личное сообщение · #6

stub

По сигнатуре поищи.
Есть же возможность выгрести сразу кусок памяти побольше и его анализировать из твоей проги.

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 24 февраля 2009 23:42
· Личное сообщение · #7

А что тебе мешает сделать поиск из своего приложения этой строки, через ту же самую readprocessmemory, ничего сложного, перебираешь все участки памяти удаленного процесса и ищешь нужную строку. Пробовал так делать, после оптимизации получается довольно быстро.



Ранг: 13.6 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 февраля 2009 02:59
· Личное сообщение · #8

спс.
всем за помощь.Буду разбираться.


 eXeL@B —› Вопросы новичков —› ReadProcessMemory
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати