2.5 KiB
title, date, draft, tags
| title | date | draft | tags | ||
|---|---|---|---|---|---|
| 🎹 Команда strings | 2024-08-17T22:45:47+03:00 | false |
|
ℹ️ strings == строки
Пример
Накидаю простую программу на Си, которая инициализирует массив символов ololo_str
со значением It's unique text,
а также выводит в консоль GrindCore \m/.
Листинг strings.c
#include <stdio.h>
int main(int argc, char const *argv[]) {
char * ololo_str = "It's unique text";
puts("GrindCore \\m/");
return 0;
}
Сборка и запуск
tcc -o string string.c # Компиляция
./string # Запуск
Выхлоп программы:
GrindCore \m/
О strings
Двоичные файлы, такие как программные файлы, могут содержать строки читаемого человеком текста.
Но как мы их видим? Если использовать cat или less, то, скорее всего,
зависнет окно терминала. Программы, предназначенные для работы с текстовыми файлами,
не могу обрабатывать исполняемые файлы, содержащие непечатаемые символы.
Спизжено отсюда.
Пример работы
Давай натравим strings на исполняемый файл string?
Выполняю команду:
strings ./string
и вижу следующий результат:
/lib64/ld-linux-x86-64.so.2
__libc_start_main
puts
main
__gmon_start__
libc.so.6
GLIBC_2.34
GLIBC_2.2.5
libc.so.6
PTE1
It's unique text
GrindCore \m/
.text
.data
.bss
.rodata.cst4
.eh_frame
.init
.fini
.preinit_array
.init_array
.fini_array
.interp
.dynsym
.dynstr
.hash
.dynamic
.got
.rela.got
.plt
.gnu.version
.gnu.version_r
.shstrtab
Много всего, да, но обе строки из программы присутсвуют.
Вывод: Утилита очень полезная! Применение?... много.
Я вот сегодня вытащил из бинарника пароль администратора от устройства,
к которому осуществлялось подключение и на котором была очень ценная информация.
(🥲 шучу).