|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
Работа с памятью программы25.10.2019, 14:08. Показов 2149. Ответов 19
Здравствуйте.
Стараюсь написать программу которая будет получать с другой программы данные, то есть будет считывать данные с определенного процесса/памяти. Но мне нужна помощь с адресацией а именно: допустим программа просто выводит число 22 и строку "test" использую ArtMoney можно найти адреса этих значений и их передать но при повторном включении спустя какое то время адреса будут другие. Вопрос: как можно узнать (и можно ли вообще) адреса данных строк? Что для этого нужно? Не судите строго за мой вопрос, сам не могу разобраться
0
|
|
| 25.10.2019, 14:08 | |
|
Ответы с готовыми решениями:
19
Работа с памятью Работа с памятью Работа с памятью процесса |
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 08.11.2019, 09:10 [ТС] | |
|
Погуглив немного я выяснил что адреса смещения можно узнать но для этого советуют использовать дезасемблер. Каких то явных программ которые смогут дать такое результат пока не нашел... Если кто то знает буду раз за информацию
0
|
|
|
231 / 163 / 54
Регистрация: 26.10.2014
Сообщений: 928
|
|
| 08.11.2019, 09:59 | |
|
STest6905, когда речь о дизассемблировании - используйте hiew. Там можно увидеть и абсолютные адреса и со смещением.
Только я не уверен что смещение в exe файле поможет вам как то
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 08.11.2019, 10:03 [ТС] | |
|
mac1eod,
Почему? Я конечно не до конца понимаю но разве смещение не одинаковые? То есть после перезапуска значения смещений всегда будут одинаковые или я ошибаюсь? Источника где описано как ведет себя программа в памяти я не нашел...
0
|
|
|
Нарушитель
10228 / 5658 / 1259
Регистрация: 12.03.2015
Сообщений: 26,227
|
|
| 08.11.2019, 10:09 | |
|
Когда-то при царе Горохе, когда деревья были большими, трава - зеленее, пиво - вкуснее, а девки - сисястее, проводил я такие эксперименты - чтение чужой памяти с помощью функции ReadProcessMemory(). Щас еле раскопал в архиве свои демо-исходники, ещё для Delphi 7. Попробовал запустить бинарник под Windows10x64 - ОНО РАБОТАЕТ!
Кек.
1
|
|
|
231 / 163 / 54
Регистрация: 26.10.2014
Сообщений: 928
|
|
| 08.11.2019, 10:11 | |
|
STest6905, про устройство exe, в том числе и про смещение https://habr.com/ru/post/266831/
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 08.11.2019, 10:14 [ТС] | |
|
Verevkin, Под чтением чужой памяти вы имеете ввиду какую то программу запущенную на том же компьютере?
За код спасибо, посмотрю для развития Добавлено через 1 минуту mac1eod, и вам спасибо. Довольно много интересной информации на собиралось!!!
0
|
|
|
Нарушитель
10228 / 5658 / 1259
Регистрация: 12.03.2015
Сообщений: 26,227
|
|
| 08.11.2019, 10:33 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 08.11.2019, 10:50 [ТС] | |
|
Verevkin, просмотрел код все стало ясно))) В вашем примере для получения данных вы сканируете всю память, пока не разобрался вы может подскажите можно ли сразу считывать данные зная смещения?
0
|
|
|
Нарушитель
10228 / 5658 / 1259
Регистрация: 12.03.2015
Сообщений: 26,227
|
|
| 08.11.2019, 10:56 | |
|
0
|
|
|
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
|
|
| 08.11.2019, 11:40 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
||
| 08.11.2019, 12:11 [ТС] | ||
|
UR1004SWL, не до конца понятен ваш вопрос.... Что вы имеете ввиду?
Добавлено через 7 минут Дезасемблирование само собою, может есть альтернатива...
0
|
||
|
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
|
|
| 08.11.2019, 12:37 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 08.11.2019, 12:49 [ТС] | |
|
UR1004SWL, по моему нет, она только отображает.
Если я вас понял правильно вы хотите сказать что нужно считывать лог файл и все или же базу куда она может писать данные, так?
0
|
|
|
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
|
|
| 08.11.2019, 13:15 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 08.11.2019, 13:35 [ТС] | |
|
UR1004SWL, я либо вас не понимаю или же вы не так поняли поставленную задачу...
0
|
|
|
Нарушитель
10228 / 5658 / 1259
Регистрация: 12.03.2015
Сообщений: 26,227
|
|
| 09.11.2019, 23:13 | |
|
0
|
|
| 10.11.2019, 02:13 | |
|
0
|
|
|
Модератор
10364 / 5651 / 3397
Регистрация: 17.08.2012
Сообщений: 17,244
|
|
| 10.01.2020, 15:43 | |
|
STest6905, действительно, изучите хоть что-нибудь о механизмах взаимодействия операционной системы с программами. Судя по... Так скажем... Стилистике... Ваших вопросов, Ваша хотелка может быть реализована лично Вами весьма и весьма не скоро.
Если вкратце. Скорее всего, в Вашем случае, нужно будет изучить WinAPI. Получить данные из окна приложения достаточно просто. Получаете хендл нужного Вам приложения, и, (если возможно,) хендл объекта, в который выводятся нужные Вам сообщения, ну, или, на худой конец, хендл объекта, который выводит нужные Вам сообщения в другой объект. Перехватываете целевые сообщения, и сохраняете их, куда Вам нравится. Обычно всё это достижимо. Но не всегда. Дизассемблирование, как правило, нужно лишь как дополнительный инструмент при частичном парсинге структуры целевой программы, но может понадобиться и в том случае, если вывод нужных данных производится, скажем так, стандартными, но не слишком распространёнными, методами. Например, приложение может использовать контекст устройства (Device Context, DC), в том числе, может использоваться и контекст графического дисплея. Тогда вывод может осуществляться не с помощью функций WinAPI, а непосредственно в виртуальное окно приложения, да ещё текст может выводится не в текстовой форме, а в виде точечного рисунка. Тогда Ваша хотелка становится и вовсе трудно осуществимой. Придётся не только перехватывать данные (фактически - битмап), но и отслеживать, откуда вообще этот рисунок берётся, и, при невозможности определения по свойствам рисунка (его источнику, имени, размеру и так далее) содержащегося в нём текста, придётся применять какие-либо OCR, либо сторонние, либо написанные самостоятельно. Не знаю, что Вы собираетесь перехватывать, но так, на всякий случай: DC Compatible BitMap в играх используется чуть ли не всегда, но ещё чаще используется непосредственный вывод на экран. Непосредственный вывод на экран, да и вывод в DC Compatible BitMap тоже, значительно быстрее вывода через оконные сообщения операционной системы. И текст, как правило, выводится не в виде текста, а сразу в виде рисунка, поскольку зачастую используется специальный шрифт. В случае непосредственного вывода на экран, скорее всего, ничего, кроме захвата графического экрана с последующей обрезкой и распознаванием текста, не поможет.
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 17
|
|
| 10.01.2020, 17:56 [ТС] | |
|
Cyborg Drone, Спасибо за ответ. Суть моего вопроса была в том что бы получить данные из сторонней программы. На компьютере установлена программа которая общается с весами. Мне нужно было получит значение которое она выдает (дальше не буду рассказывать что я с ними делаю поскольку не интересно). По началу не до конца понимая как мне это получить думал пойти простым путем но он оказался вовсе не простой. Поэтому решил пойти по WinAPI, хендл и т.д. В результате я сделал то что хотел.
0
|
|
| 10.01.2020, 17:56 | |
|
Помогаю со студенческими работами здесь
20
Потоки, работа с памятью Работа с памятью чужого процесса
Управление памятью другой программы Работа с памятью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|