|
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 10
|
||||||
Поиск строки в памяти запущенного процесса и её изменение19.07.2009, 20:42. Показов 13283. Ответов 10
Метки нет (Все метки)
Не могу решить задачку нужно считать строку из памяти процесса запущенной программы.
RVA строки $0036D0C8 нужен ведь RVA не VA Процедура выглядит следующим образом, для проверки значений заносил их в edit
В результате получилось следующее хэндл, pid process считываються идеально, а вот переменная ipbuf куда должно занестись значение выдыдаёт какуето ерунду что не так где ошибки?
0
|
||||||
| 19.07.2009, 20:42 | |
|
Ответы с готовыми решениями:
10
Поиск строки в памяти запущенного процесса и её изменение Поиск адреса в памяти запущенного процесса Поиск и изменение значения в памяти(Не процесса) |
|
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
|
||||||
| 19.07.2009, 22:40 | ||||||
|
Нужно чтобы буфер для чтения был не String, а DWORD.
1
|
||||||
|
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 10
|
||
| 20.07.2009, 10:24 [ТС] | ||
|
Добавлено через 13 минут 24 секунды я так понимаю что он должен счтывать данные из этого оффсета $0036D0C8 тоесть 0036D0C8: 48|00|75|00|63|00|6B|00|65|00|72|00|73|0 0|00|00 Результат должен быть таким H u c k e r s (ascll) или же 4800750063006B006500720073000000 (в hex) а он равен 7667784
0
|
||
|
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
|
||||||
| 20.07.2009, 12:34 | ||||||
Сообщение было отмечено как решение
Решение
Так бы сразу и сказал, что ты читаешь строку в Unicod'e.
4
|
||||||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 20.07.2009, 14:18 | |
|
Если бы был не юникод, то ошибка в том, что Addr(ipbuf) - адрес указателя (которым по сути является string), а буфер - Addr(ipbuf[1]).
Хм, всегда думал, зачем нужен addr, если есть @, это, наверное, для совместимости с клавиатурами очень далёких времён, как круглые скобки с точками и звёздочками...
0
|
|
|
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 10
|
|||||||||||
| 20.07.2009, 17:59 [ТС] | |||||||||||
|
Спасибо огромное за помощь теперь считывает
а как работает функция WriteProcessMemory записи в память процесса теперь я допустим хочу заменить слово по адресу на своё как правильней это сделать
Добавлено через 21 минуту 15 секунд немного подправил тип переменных
0
|
|||||||||||
|
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
|
||||||
| 20.07.2009, 22:55 | ||||||
Сообщение было отмечено как решение
Решение
А зачем ты считываешь слово, если ты с ним ничего не делаешь?\ Чтобы ты смог писать в память процесса, ты его должен открыть функцией OpenProcess() с флагом не менее PROCESS_VM_WRITE, а лучше PROCESS_ALL_ACCESS. Обязательно, если ты изменяшь что-то в процессе во время исполнения, то то что ты записываешь должно быть меньше или точь-точь по размеру, иначе может быть обрушение инъектируемого процесса (конечно, если за инъектируемой областью не находяться пустоты программного кода или ненужные текстовые строки).
4
|
||||||
|
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 10
|
|
| 21.07.2009, 11:25 [ТС] | |
|
А зачем ты считываешь слово, если ты с ним ничего не делаешь?
чтоб потом проверить что в памяти ведь если первый раз нажать на кнопку он занесёт в edit считаное значение не изменённое, а если второй то он покажет уже измёнённое по этому адресу (для контроля так сказать) Обязательно, если ты изменяшь что-то в процессе во время исполнения, то то что ты записываешь должно быть меньше или точь-точь по размеру, иначе может быть обрушение инъектируемого процесса (конечно, если за инъектируемой областью не находяться пустоты программного кода или ненужные текстовые строки). Там после этого слова в памяти достаточно нулей чтоб предложение уместить Страно слово меняет но в программе это не отображается сделал вот такую проверку открыл в artmoney свой процесс нашёл своё слово просмотрел встроенным редактором памяти(artmoney), открыл свою программу нажал на кнопку смотрю в редактор памяти значение изменилось, а в программе так и осталось, решил проверить может где появилось оно снова и дествительно по новому адресу где его небыло появилось не изменёное слово мне тут порекомендовали какую то подмену значения Меняем значение в памяти по адресу adr: ^dword; adr: ptr($00123456); adr^:=$FFFFFFFF; но я чёт не могу понять что за $FFFFFFFF и как это можно использовать в моём примере
0
|
|
|
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
|
|||
| 21.07.2009, 12:24 | |||
1
|
|||
|
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 10
|
|||
| 21.07.2009, 12:52 [ТС] | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 33
|
|
| 17.02.2017, 07:46 | |
|
ВОПРОС: Как не зная адреса строки ($0036D0C8) найти слово/строку?
Конкретно: мне нужно найти слово: test- , после его нахождения в памяти (процесса) считать значение в 32 символа (буквы цифры - ХЕШ - В ВЕРХНЕМ РЕГИСТРЕ!!!), которые идут сразу за найденным словом test- ??? PS: в памяти может быть ещё один "хеш", но в нижнем регистре букв - поэтому нужен только который правильный (верхний регистр).
0
|
|
| 17.02.2017, 07:46 | |
|
Помогаю со студенческими работами здесь
11
Чтение памяти запущенного процесса Поиск адреса в памяти процесса и изменение нескольких байт по этому адресу Поиск Строки в памяти процесса Поиск строки в памяти другого процесса Поиск запущенного процесса Visual Studio C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|