|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.10.2011, 21:34 | #1 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 12
|
сканирование памяти
как просканировать память программы в поисках определеного значения
(типо как артмани) известин хэндл окна по нему узнаю pid процесса потомм юзаю OpenProcess а вот что дальше делать незнаю наверное надо использовать readprocessmemory но как использавать незнаю интерисует все что надо делать после OpenProcess зарание спс |
30.10.2011, 22:41 | #2 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
Код:
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
30.10.2011, 22:49 | #3 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 12
|
да только я незнаю что такое exec но думаю гугл поможет
хотелось бы еще узнать подробне об том что в скобках (PH, ptr(Addres), @GetValue, ByteType, rw) но это тоже гугл должен помоч rw - это то что я ищу в памяти? ptr(Addres) это значит что я по всей памяти процесса ищу? не наверное я непонял а можно как небуть узнать деопазон адресов использумех ячеек памяти програмой (первый и последние адреса ячеек которые используються програмой тогда бы я вставил бы вцикл и увеличивал адрес на 1 и читал бы значение с этого адреса сравнивал бы с тем что ишу и если это совподает то записывал/выводил адрес этой ячейки и так пока недойду до последней ячейки памяти которую использует программа) Зачем вы отвечаете с цитированием предыдущего поста ? Вы не видите кнопку справа от кнопки "Цитата" ? Или вам почему-то не видно пустое окно редактора под последним сообщением ? За оверквотинг у нас штрафуют, имейте это ввиду. Дабы не нарушать правила раздела, внимательно их почитайте: http://programmersforum.ru/announcement.php?f=2 После 10 ваших сообщений начнете получать штрафы за нарушение правил... Последний раз редактировалось mihali4; 31.10.2011 в 02:56. |
30.10.2011, 23:30 | #4 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
exec - результат функции, будет иметь значение True, если все прошло нормально.
PH - станет понятно, если посмотреть на пару строчек выше. То с чем будем работать, цель. ptr(Addres) - Адрес, где будем читать значение в памяти целевого процесса. @GetValue - Считанное значение по заданному адресу. ByteType - тип байта, 1,2,4,8. rw - сами посмотрите. Для этого есть MSDN.
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
30.10.2011, 23:38 | #5 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 12
|
мне несовсем это было нужно
ptr(Addres) - Адрес, где будем читать значение в памяти целевого это то что мне надо найти т.е мне надо найти все адресса ячеек которые содержат определеное значение объясню на примере есть праграмма блокнот и я хочу найти адреса ячеек в каторых содержиться число 1234 вот думаю я понятно объяснил Последний раз редактировалось mihali4; 31.10.2011 в 02:57. |
31.10.2011, 02:06 | #6 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
А гуглом пользоваться умеете? Давайте я поищу в гугле за вас? - http://tinyurl.com/3upthtq
PS. Знаки препинания по возможности ставьте, тяжко читать.
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
31.10.2011, 14:38 | #7 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Мат-часть сначала подтяните.
Чтобы не было "а что эти закорючки тут значат?" http://www.transl-gunsmoker.ru/2009/09/blog-post.html http://www.gunsmoker.ru/2011/04/windows.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
31.10.2011, 19:36 | #8 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 12
|
получаеться мне можно сделать простым перебором всех ячеек
памяти наченая с 00010000 (0000FFFF+1). тока вот докакой ячейки переберать ведь наврятле приложение использует все 4 гига, и зарезервированую память (насколько я понял зарезервированая память заполняеться нулями, можно поставить учловие после 1000 нулей прекращать поиск) я думаю что можно получить инфармацию о процессе и там будет указоно сколько мегабайт использует процесс, перевести это количество в байты и сложить с 0000FFFF так я получу последний адрес ячейки я правельно понял? если что то нетак укажите на мои ошибки и еще один маленький вопросик Код:
думаю эти вопросы касаються этой темы и тут нет нарушений правил форума |
31.10.2011, 19:39 | #9 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Определить статус страницы памяти можно через VirtualQuery.
Список занятых страниц не обязан быть непрерывным. Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
31.10.2011, 20:34 | #10 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 12
|
Код:
[Error] Unit1.pas(85): Undeclared identifier: 'BytesRead' [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' ) и ставит курсор перед @yess что нетак я сделал? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для тестирования памяти, тестирование ячеек памяти | Hunter557 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 30.01.2011 19:20 |
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти | ]tach[ | Общие вопросы C/C++ | 1 | 19.01.2011 13:16 |
Сканирование портов | -Flasher- | Работа с сетью в Delphi | 5 | 03.08.2010 10:47 |
Сканирование директории | D!zel | Общие вопросы Delphi | 8 | 22.12.2009 21:11 |
Сканирование директорий. | Serious | Общие вопросы Delphi | 2 | 14.02.2009 15:17 |