Я пытаюсь выполнить функцию в работающем (старом) Win32-приложении Borland (в Window есть класс OLW_WINDOW). Используя OllyDbg, я обнаружил, что функция имеет один параметр, который является адресом памяти. Одна переменная / значение, используемое функцией, сохраняется со смещением этого адреса. Моя идея состоит в том, чтобы найти этот адрес памяти (который находится в постоянном смещении в блоке памяти), изменить переменную / значение на то, что я хочу, а затем выполнить функцию. Использовать WriteProcessMemory и CreateRemoteThread для выполнения - это нормально, но проблема в том, как найти адрес / блок памяти? При открытии «Карты памяти» в OllyDbg блок памяти не имеет владельца, раздела или содержит. Можно ли получить список блоков памяти, созданных указанным потоком? Или я мог как-то получить это из приложения? Кстати: функция обычно выполняется, когда нажимается кнопка, и переменная / значение, которое я хочу установить, представляет собой идентификатор базы данных, указанный (по имени) в списке (или эквивалент).