Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: внедрить код в программу написанную на vb скомпилированную в pcode
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
sergey sva
Нужна помощь, может кому приходилось с таким сталкиваться. Есть программа написанная на VB и скомпилированная в pcode. Исходников нет. Программа периодически посылает устройству команду. Нужно команду перехватить и переслать в мою программу. Посмотрел код декомпилятором, нашел адрес функции которая мне нужна выглядит так
Код
Public Function cmd(Command_a, Nom_a) '440C2C
  'Data Table: 405784
как бы добавить функцию которая бы передавала из этой программы в мою этот вызов? Нужно для благого дела ))
jcxz
Цитата(sergey sva @ Oct 12 2015, 02:19) *
Нужна помощь, может кому приходилось с таким сталкиваться. Есть программа написанная на VB и скомпилированная в pcode. Исходников нет. Программа периодически посылает устройству команду. Нужно команду перехватить и переслать в мою программу. Посмотрел код декомпилятором, нашел адрес функции которая мне нужна выглядит так
Код
Public Function cmd(Command_a, Nom_a) '440C2C
  'Data Table: 405784
как бы добавить функцию которая бы передавала из этой программы в мою этот вызов? Нужно для благого дела ))

Перехватить ЧТО? Посылаемые байты через некий интерфейс или событие "посылка команды"?
Читайте MSDN на предмет использования хуков (hooks).
sergey sva
Сейчас поищу на MSDN . Нужно как только произошел переход на эту функцию сразу передать это событие в мою программу вместе с переменными Command_a, Nom_a. Вопрос как это сделать, внедрять свой код или как то подключиться к этому процессу, что бы это сделать без особых заморочек.
jcxz
Цитата(sergey sva @ Oct 12 2015, 13:29) *
Сейчас поищу на MSDN . Нужно как только произошел переход на эту функцию сразу передать это событие в мою программу вместе с переменными Command_a, Nom_a. Вопрос как это сделать, внедрять свой код или как то подключиться к этому процессу, что бы это сделать без особых заморочек.

Если нужно перехватить передачу управления при вызове собственных функций этой программулины (а не вызовов WinAPI), то без модификации её кода вряд-ли можно обойтись.
Общий принцип будет примерно такой (очень примерно, ибо хуками я занимался очень давно):
Размещаете свои необходимые функции в DLL, при помощи какого-либо подходящего хука внедряете эту DLL в память интересуемого процесса, при внедрении модифицируете код
исходного ПО (не знаю - возможно-ли это для сегментов TEXT, сам не делал, я делал только перехват вызовов WinAPI с захватом-модификацией данных).
Всё, теперь должны получать вызовы.

PS: Всё это верно если нужна модификация ПО "на лету", без модификации исполняемого файла.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.