Чтение памяти процесса

Тема в разделе "WASM.WIN32", создана пользователем drem1lin, 15 мар 2010.

  1. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    При загрузке блокнота или Ворда в память и редактировании документа, текст и все остальное находится в памяти процесса, вопрос, как это оттуда вытащить? или произвести анализ информации(любой) в памяти процесса? Что можно почитать и какие функции надо применять? ReadProcessMemory это то? если кому не жалко может кто какие нибудь исходники скинет?
     
  2. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    да, совсем забыл.. Второй параметр ReadProcessMemory, он чему должен быть равен и откуда его достать?
     
  3. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    а не проще для ворда применять VBA?
    Из документации.
     
  4. Sunzer

    Sunzer Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    256
    http://msdn.microsoft.com/en-us/library/ms680553(VS.85).aspx
     
  5. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    в том то и проблема, что не понял. Растолкуйте
     
  6. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
     
  7. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    lpBaseAddress - начало области чтения (адрес от куда ты хочешь начать читать память).
    Вообще не плохо бы подучить матчасть и самому "потыкаться". Раньше интернет был в диковинку, и ничего, люди учились сами по себе.
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ну для блокнота не проблема понять текст, с которым он работает. А в Ворде будет сложнее, хотя если текстовый документ, то не проблема.
    Не понятен смысл вопроса - вбиваешь в поисковик ReadProcessMemory или
    "Чтение памяти процесса" и получишь и описание и исходники. Думаю и на сайте в статьях это есть и топики наверняка были.
     
  9. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    В ворде все можно реализовать ч/з встроенный VBA или написать AddIn, нахрена извращаться-то?
     
  10. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Это я второй раз на счет VBA повторяю, т.к. видимо не поняли. Дело в том что несколько открытых документов в действительности отображаются на память одного процесса winword и + есть стандартные средства работы с текстом, встроенные в VBA......
     
  11. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    RET
    Изначально вопрос про память и это подчеркнуто. В блокноте вообще никаких скриптов нет.
    Другое дело, что проблема вовсе не в ReadProcessMemory , а в том, чтобы найти с ее помощью текст. Вот таких API нет. Автор думал, что есть API для определения, где текст лежит. АГА - СЕЙЧАС. Он не про смысл параметров спрашивал, а про их "реальные" значения. Про VBA ему вообще бесполезно говорить.
     
  12. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    самого когда-то подобный вопрос интересовал, нужно каким-то образом определить нужные участки памяти процесса - сразу отбросить ненужные участки это imagebase + sizeofimage, each_dllloadadress + imagesizedll, и через ReadProcessMemory большими кусками читать адресное пространство процесса, или внедрить в процесс модуль который будет сканировать в рамках уже одного виртуального пространства память, что должно быть быстрее голого ReadProcessMemory.
     
  13. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    valterg Тогда ТС прямой путь к реверсированию winword и причендал к нему.
     
  14. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    зачем привязываться к какому-то конкретному софту...
    автору прямой путь сюда
    http://msdn.microsoft.com/en-us/library/aa366902%28VS.85%29.aspx
    и сюда
    http://msdn.microsoft.com/en-us/library/aa366775%28VS.85%29.aspx

    сканиться память на предмет используемых участков памяти , далее нужно выбирать страницы с аттрибутами PAGE_READWRITE и уже их читать и анализировать
     
  15. ptr

    ptr New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2009
    Сообщения:
    130
    http://www.google.com/search?q=ReadProcessMemory+%D1%81%2B%2B
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    drem1lin
    Для блокнота GetWindowLongA(0) и два раза раскройте ссылку, это будет линк на текст на текстбоксе в юникоде.
    karabas_barabas
    Можно адресное пространство переключить на целевое, аттачнувшись к процессу из ядра. Тогда пользовательскую память можно юзать непосредственно её чтением средствами камня, но это в ядре.