Выяснение программы общения - PullRequest
2 голосов
/ 26 июня 2011

У меня есть встроенный gnu / linux на устройстве arm, на котором запущена программа, и я могу его телнетить Я хочу знать, как программа отправляет команды на устройство, чтобы я мог сделать свою собственную программу для отправки этих команд, но когда я этого хочу. Я почти уверен, что пишет что-то в /dev.
Как мне узнать, какой файл в /dev (я знаю, что это не совсем файлы), в который программа пишет и что?
Для справки на чипе armv5tejl с ядром 2.6.27.47. У меня также есть цепочка инструментов, так что я могу скомпилировать программы для нее.

1 Ответ

5 голосов
/ 26 июня 2011

Используя lsof (список открытых файлов), вы можете увидеть, какие файлы открыты у каждого процесса. Вы должны найти узел устройства, используемый вашим процессом там. Кроме того, вы можете узнать PID (идентификатор процесса) вашей программы, используя ps aux, а затем посмотрите на дескрипторы открытого файла процесса в /proc/$pid/fd, где $ pid - это PID вашей программы.

Чтобы выяснить, что пишет программа, возможно, проще всего использовать strace для отслеживания всех системных вызовов, которые выполняет программа. (С помощью strace вы также можете узнать, какой файл открывает программа.) Вы также можете заменить файл, в который программа пишет, на пустой файл, если это возможно, или, если необходимо, на фиктивный драйвер ядра, который записывает все, что получает .

...