|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
||||||
Оперативная память и WinAPI (поиск строки в памяти процесса)22.04.2015, 09:53. Показов 15522. Ответов 37
Метки нет (Все метки)
Здравстуйте.
Работаю с оперативной памятью и WinApi. Пытаюсь найти строчку в памяти запущенного процесса. Естественно не получается. Код скинул ниже.
1
|
||||||
| 22.04.2015, 09:53 | |
|
Ответы с готовыми решениями:
37
Поиск Строки в памяти процесса Поиск строки в памяти другого процесса Поиск строки в памяти запущенного процесса и её изменение |
|
Ушел с форума
|
||
| 22.04.2015, 11:18 | ||
|
написать ну никак нельзя.
0
|
||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
| 22.04.2015, 14:12 [ТС] | |
|
В том то и дело, что ошибок нет... По идеи должно работать...
0
|
|
|
240 / 213 / 84
Регистрация: 18.03.2010
Сообщений: 750
|
||
| 22.04.2015, 16:00 | ||
|
1
|
||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
| 22.04.2015, 17:45 [ТС] | |
|
Нет, хотелось бы узнать почему
0
|
|
|
46 / 31 / 12
Регистрация: 21.04.2015
Сообщений: 82
|
||||||
| 22.04.2015, 18:31 | ||||||
|
А вы уверены, что эта строка там есть? Прогнал ваш код под отладчиком - всё работает.
Или может быть строка там хранится в UNICODE? В этом случае надо чуть-чуть изменить:
Или может процесс запущен от имени администратора?
0
|
||||||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
| 22.04.2015, 20:07 [ТС] | |
|
Неа, не помогает... Я сам проходился под отладчиком, программа должна работать
Добавлено через 37 секунд нет, никаких последовательностей не находит... я уже не знаю что и делать Добавлено через 20 минут А вы не работали с оперативной памятью? может у вас есть какой-нибудь пример для нахождения строк
0
|
|
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
| 25.04.2015, 03:43 [ТС] | |
|
Спасибо, но именно данными программами проверяю результат. Строка там точно есть!
0
|
|
|
0 / 0 / 1
Регистрация: 25.04.2015
Сообщений: 1
|
||||||
| 25.04.2015, 11:00 | ||||||
|
попробуй воспользоваться функцией получения привилегий отладчика перед тем, как совершать любые манипуляции с памятью.
0
|
||||||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
| 25.04.2015, 12:03 [ТС] | |
|
Спасибо, но не помогает. Самое интересное, что строка точно есть в процессе, какие-то строки находит правильно, а какие-то нет
0
|
|
|
Ушел с форума
|
|||||
| 25.04.2015, 15:31 | |||||
Сообщение было отмечено Кирилл Романов как решение
Решение
Вы не там ищете:
размером всего с Working Set, т.е. несколько мегабайт или около того. А надо искать во всем адресном пространстве процесса. NtQuerySystemInformation с кодом SystemBasicInformation (0), получите структуру SYSTEM_BASIC_INFORMATION, из нее берете поля MinimumUserModeAddress и MaximumUserModeAddress, это и есть нижний и верхний диапазоны адресов поиска. А вовсе не EntryPoint + Working Set, что вообще само по себе бессмысленно.
Еще желательно учесть, что искомая строка может лежать на границе двух страниц.
Потому что на x64 указатели вытягиваются с 4 байт до 8 (в DWORD не влезет, а ошибок компиляции не будет).
Все, что нужно проверять - это то, что страница закоммичена и доступна на чтение.
1
|
|||||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
||||||
| 26.04.2015, 09:06 [ТС] | ||||||
|
Убежденный, большое спасибо за комментарий. Совсем согласен, но есть вопросы:
1. Диапазон адресов я получаю теперь следующим образов (исходя из ваших слов):
2. Тупо не понимаю как постранично двигаться.
0
|
||||||
|
Ушел с форума
|
||||
| 26.04.2015, 09:17 | ||||
Сообщение было отмечено Кирилл Романов как решение
РешениеА для 32-битных процессов диапазон поиска обычно получается около 2 Гб.
использования в режиме пользователя.
1
|
||||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
||
| 26.04.2015, 09:50 [ТС] | ||
|
Ладно, вы мне очень помогли, спасибо.
0
|
||
|
Ушел с форума
|
|
| 26.04.2015, 10:08 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
||||||
| 26.04.2015, 10:24 [ТС] | ||||||
|
Убежденный, и последний вопрос.
Мне отказаться стоит от регионов вообще?
2. В чем приемущество просмотра памяти по страницам?
0
|
||||||
|
Ушел с форума
|
||
| 26.04.2015, 14:51 | ||
Сообщение было отмечено Кирилл Романов как решение
Решение
Атрибуты защиты памяти могут устанавливаться для отдельных страниц,
поэтому двигаться лучше по страницам, а не по регионам. Добавлено через 34 секунды
2
|
||
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
| 27.04.2015, 01:06 [ТС] | |
|
Убежденный, спасибо Вам большое. У меня все получилось. А самое главное, что я все понял!
0
|
|
|
-1 / 8 / 6
Регистрация: 31.10.2015
Сообщений: 151
|
||||||
| 29.01.2016, 13:58 | ||||||
|
Убежденный, воспользовался кодом из этой теми для поиска своего текста в процессе. Немножко переделал,в соответствии с комментариями, но что то оно ищет слишком долго, и дико жрет оперативку. Не могли бы Вы подсказать, что я сделал не так?
0
|
||||||
| 29.01.2016, 13:58 | |
|
Помогаю со студенческими работами здесь
20
Виртуальная память процесса, функции WinAPI Совместимость оперативной памяти - Оперативная память После замены оперативной памяти компьютер перезагружается / Оперативная память Оперативная память для RYZEN, тест памяти DDR4. Одноканальность/двухканальность Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|