Strace, помощна програма Cli за прихващане и запис на системни повиквания

статистика

Strace е CLI помощна програма, която се използва за проверка за грешки в системата като позволява наблюдение на системните разговори използва се от определена програма и всички сигнали, които получава. Полезност позволява на потребителя да наблюдава и (от версия 4.15) да се намесва в процеса на взаимодействие между програмата и ядротовключително текущи системни обаждания, изскачащи прозорци и промени в състоянието на процеса

Работата му е възможна чрез функция на ядрото на Linux, наречена ptrace. Той е подобен на truss приложението, налично в други системи на Unix. Програмата Cygwin предоставя подобна програма. Най-честото му използване е да го стартира заедно с програмата, която се проследява, която отпечатва списък със системните повиквания, които изпълнява.

Полезно е да разберете причината за отказ на определена програмаили защото съобщава за ситуации, в които например програмата се опитва да осъществи достъп до файл, който не съществува или за който няма разрешение за четене.

От характеристиките, които се открояват от Strace, се открояват следните:

  • Да можете да посочите филтър за име на syscall, който да бъде проследен (използвайки опцията -e trace =): по име, като клонинг, вилица, vfork; използване на една от предварително дефинираните групи, като% ipc или% файл; или (от версия 4.17), използвайки синтаксис на регулярния израз, като clock_ *.
  • Посочете списък с маршрути за проследяване (например -P /etc/ld.so.cache).
  • Посочете списък с файлови дескриптори, чиито I / O трябва да бъдат изхвърлени
  • Бройте времето за изпълнение и броя на syscall
  • Отпечатване на относителни или абсолютни времеви марки
  • Модифицирайте кода за връщане и грешка на определени системни повиквания и инжектирайте сигнали след изпълнение
  • Извличане на информация за файлови дескриптори (включително сокети).
  • Отпечатване на стека на стека, включително (от версия 4.21) символ за търсене (-k).
  • Филтриране по syscall статус на връщане
  • strace поддържа декодиране на аргументите на някои командни класове на ioctl, като BTRFS_ *, V4L2_ *, DM_ *, NSFS_ *, MEM *, EVIO *, KVM_ * и няколко други.

Тъй като strace само подробно извиква системата, не може да се използва за откриване на толкова много проблеми, колкото дебъгер на код като GNU Debugger (gdb). Той обаче е по-лесен за използване от кода за отстраняване на грешки и е изключително полезен инструмент за системните администратори. Той се използва и от изследователите за генериране на следи от системни повиквания за по-късно повторно възпроизвеждане.

Относно новата версия на Strace 5.3

Наскоро беше представена новата версия на strace 5.3, в която лицензът на кода се промени от BSD на LGPLv2.1 + и GPLv2 + за пробната версия.

Също така в рамките на промените, които се открояват, че е там поддръжка за филтриране на системни обаждания чрез създаване на seccomp филтри ("–Seccomp-bpf"), както и кода за връщане ("-e status = ...").

Друга промяна, която се откроява в анонса на тази нова версия, е, че разработчиците са добавили поддръжка за системни повиквания за декодиране pidfd_open и clone3, плюс подобрено декодиране на системните повиквания io_cancel, io_submit, s390_sthyi и syslog.

Също така в рекламата е подчертано, че Командата ioctl изброява синхронизиране с ядрото на Linux 5.3

От останалите промени които са споменати в рекламата, са:

  • Подобрено декодиране на протокол NETLINK_ROUTE
  • Декодираният атрибут на мрежовата връзка UNIX_DIAG_UID и командите WDIOC_ * ioctl
  • Актуализирани са списъците с константи AUDIT_ *, BPF_ *, ETH_ *, KEYCTL_ *, KVM_ *, MAP_ *, SO_ *, TCP_ *, V4L2_ *, XDP_ * и * _MAGIC

Как да инсталирам strace 5.3 на Ubuntu и деривати?

Помощната програма Strace може да бъде намерена в хранилищата на Ubuntu, както и нейните производни, но доколкото към тази нова версия, тя не е била включена в хранилищата. Инсталирането през хранилищата може да се извърши чрез изпълнение на следната команда:

sudo apt install strace

Сега за тези, които искат да инсталират тази нова версия, те трябва да изтеглят изходния код и да компилират на вашата система.

Те изтеглят изходния код с:

git https://gitlab.com/strace/strace.git

Те влизат с:

cd strace

И те се компилират с:

./configure && make && make install

Накрая относно използването, можете да намерите някои ръководства в мрежата.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.