|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.01.2011, 11:01 | #1 |
Регистрация: 19.09.2008
Сообщений: 4
|
Как запустить процедуру в исполняемом файле?
Добрый день!
Есть программа, которую я написал достаточно давно. Ее исходники безвозвратно утеряны. Сейчас мне нужно написать дополнение к ней. Это другая программа, которая меняет данные в памяти и запускает процедуру. Эта процедура изменяет несколько компонентов на форме и т.п. С изменением данных проблем нет. Вопрос, как запустить процедуру, которая уже существует в программе? (ее адрес и код вытащил дизассемблером). Другими словами, нужно организовать что-то вроде прерывания, которое бы запускало только одну процедуру, а потом продолжало выполнение программы с нужного места. К сожалению, с ассемлером практически не работал, поэтому буду рад исходникам и подробным рекомендациям. Пишу на Delphi. Большое спасибо за помощь! |
31.01.2011, 12:07 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Собрать эту дизассемблированную процедуру в отдельную dll, а из основной программы вызывать функцию после подключения этой dll. Dll будет находиться в адресном пространстве основной программы, так что никаких проблем быть не должно.
|
31.01.2011, 13:28 | #3 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
зачем что то дизассемблировать и пересобирать?
CreateRemoteThread, тем более если адрес вам известен суть такова после смены нужных вам данных(вы ведь уже открыли процесс на запись и прочие бесчинства? ), выделите память в препарируемой виртуальной памяти VirtualAllocEx, запишите туда шеллкодес вида: Код:
(ежели у процедуры нет параметров, то соответственно их инициализация не нужна, параметры также могут передаваться в ригистрах, вообщем смотреть надо) вот и все дела
Нет, ну правда..
|
01.02.2011, 23:19 | #4 |
Регистрация: 19.09.2008
Сообщений: 4
|
Большое спасибо за ответы!
Попробую разобраться =) Вроде бы звучит несложно, посмотрю, что на деле =) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В каком событии ФОРМЫ лучше запустить процедуру | tarakan1983 | Общие вопросы Delphi | 7 | 16.09.2010 23:16 |
Напишите процедуру SeekFun(f), которая находит в файле, содержащем текст программы на Паскале, идентифика | polarity | Помощь студентам | 0 | 05.06.2010 18:57 |
ресурсы в исполняемом файле | yellow87 | Общие вопросы Delphi | 1 | 25.02.2010 08:42 |
Как запустить приложение делфи в фоновом режиме(как процесс)? | Diakon | Общие вопросы Delphi | 4 | 16.11.2009 13:06 |
Поиск процедуры в исполняемом файле. | SoundMan | Общие вопросы Delphi | 8 | 19.03.2009 15:38 |