![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Использование логгера для отслеживания параметров в консольных приложениях на DelphiDelphi , ОС и Железо , DOS и КонсольВопрос, поднятый пользователем, заключается в необходимости "шпионить" за параметрами, которые передаются в консольное приложение из другого приложения, написанного на Delphi. В частности, речь идет о видео/аудио конвертере, который запускается как отдельный процесс. Рассмотрим, как можно решить эту задачу, не прибегая к хукингу или мониторингу функций, таких как Альтернативный подходОдин из способов решения проблемы - создать собственный исполняемый файл, который будет просто вызывать оригинальное приложение, передавая ему все параметры. Затем оригинальное приложение можно переместить в другое место и заменить его созданным исполняемым файлом. Такой подход позволит логировать все вызовы и передаваемые параметры. Подробности реализацииДля реализации такого подхода можно использовать простой скрипт, который будет запускать оригинальное приложение, передавая ему все аргументы командной строки. Вот пример кода на Object Pascal, который демонстрирует, как это можно сделать:
Этот скрипт сначала получает аргументы командной строки, затем логирует их в консоль, после чего запускает оригинальное приложение, передавая ему полученные аргументы. Использование Process ExplorerПроцесс Эксплорер из набора инструментов Sysinternals позволяет отслеживать информацию о процессах, включая параметры, передаваемые в приложение. Это можно сделать, не используя хукingi API, а анализируя информацию из памяти процесса. Подтвержденный ответДля реализации подобного функционала можно использовать методы, аналогичные тем, что использует Process Explorer. Однако, для работы с низкоуровневыми структурами Windows, такими как PEB (Process Environment Block), может потребоваться доступ к определениям из файла Для получения необходимой информации можно обратиться к блогу Мата Пиетрека и статье на CodeProject, посвященной чтению строк окружения удаленного процесса. Если лицензия GPL не является проблемой, то также можно использовать аннотированную версию файла ЗаключениеИспользование логгера - это эффективный способ отслеживания параметров, передаваемых в консольные приложения. Создание собственного исполняемого файла, который будет выполнять логирование и передачу параметров, является одним из возможных решений. При необходимости можно также использовать методы, аналогичные тем, что реализованы в Process Explorer, для анализа информации из памяти процесса. Вопрос связан с необходимостью отслеживания параметров, передаваемых в консольное приложение на Delphi, используя логгер для мониторинга вызовов и передаваемых данных без применения хукинга или мониторинга системных в Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: DOS и Консоль ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |