Пятничный деплой
4.37K subscribers
1.29K photos
24 videos
163 files
7.56K links
Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://t.me/s/count0_digest
Download Telegram
Forwarded from 4gophers
Debug a Go Application in Kubernetes from IDE
https://t.co/46STTXCjTi

Учимся отлаживать приложения запущенные в Kubernetes
#kubernetesm #debug
Forwarded from Go Дайджест
Дебажим бинари в продакшене вместе с Delve. 😬👇

https://blog.golang.org/debugging-what-you-deploy

#delve #debug
🛠 Собственно, в блоге Меты появилась статья с описанием инструмента - Hermit: Deterministic Linux for Controlled Testing and Software Bug-finding.

#hermit #debug #напочитать
Julia Evans выпустила новый комикс, и сделала его доступным бесплатно, с промо-кодом BUYONEGIVEONE. Достаточно перейти к покупке, ввести промо-код, и цена уменьшится до $0.

https://wizardzines.com/zines/debugging-guide

#debug #напочитать
Forwarded from Bash Days | Linux | DevOps (Роман Шубин)
Здрасти. Как-то я писал про strace и как применять инъекции. Если пропустил, то читай тут и тут.

Ниже скрипт который автоматически пронумерует системные вызовы для последующих инъекций.

#!/usr/bin/perl

use strict;
use warnings;

my %numbs;
select STDERR;
while(<STDIN>) {
if( /^[0-9]++\s++([a-z0-9_]++(?=\())/ ) {
my $t = ++$numbs{$1};
s/\s+/ \e[31m$t\e[m /;
die $! if( keys %numbs == 1000 );
}
print;
}
exit(0);


Сохраняем это безобразие в файл num_syscalls и делаем chmod +x, ну а дальше запускаем в связке с strace:

strace -o'|./num_syscalls' -yf sh -c 'ls|cat'


Теперь получаем такой выхлоп:

456107 48 close(3</usr/) = 0
456107 52 rt_sigreturn({mask=[]})
456107 63 openat(AT_FDCWD</usr/local/sbin>)
456107 53 newfstatat(3)
456107 64 openat(AT_FDCWD</usr/local/sbin>)


Смотрим второй столбик, включаем логику и видим, что системные вызовы нумеруются.

Например, возьмем системный вызов openat, видим 63, 64. Это значит что openat был вызван 64 раза. А newfstatat 53.

Теперь берем нужный номер системного вызова и применяем инъекцию. Как это сделать и для чего, опять же показывал на примерах (ссылки в начале этого поста).

Тема крутая, не нужно ебаться и считать руками.

Весь вывод strace отправляется в stderr, чтобы иметь возможность разделять вывод трассировки и вывод исследуемой программы.

А чтобы получить только трассировку, можно сделать так:

strace -o'|./num_syscalls' -yf ls > /dev/null


Если бесит подсветка, выпили из перловского скрипта управляющий символ «\e[31m\[em».

Такие дела, изучай!

tags: #linux #debug

🔔 @bashdays➡️ @gitgate
Please open Telegram to view this post
VIEW IN TELEGRAM