Pstrings — исследователь адресного пространства

Pstrings - исследователь адресного пространства

Версия: 1 Сайт: http://github.com/andikleen/pstrings

Мы любим получать письма от новообращенных линуксоидов, оставивших мир Windows: одни — потому что Linux быстрее, другие — потому что Linux надежнее, а третьи — потому что Linux предлагает большую личную свободу. Но многим просто нравится, что эта ОС намного прозрачнее и проще в изучении. В ОС от Microsoft куча всяких файлов и процессов с загадочными именами, скрытых API и прочих штук, которые не дают понять систему. А в Linux все прозрачно — исследуйте сколько душе угодно.

Например, через /dev/mem можно даже заглянуть в ОЗУ вашего компьютера. Оценить информацию, хранимую неким процессом, чуть сложнее, однако Pstrings достойно с этим справляется — как минимум для приложений командной строки. Зачем это вообще может понадобиться? Ну вот вы работаете с таким приложением, и оно заблокировалось или стало недоступным по иной причине. А внутри программы у вас важные данные, и они вам остро необходимы. Или — ваш сервер взломали, злоумышленник запустил в системе вредоносный процесс, и нужно оценить, до какой степени все плохо.

Pstrings выдает в виде ASCII-текста содержимое ОЗУ процесса — оно бывает чудовищного объема, но тут в игру вступает разумная фильтрация. Чтобы скомпилировать его, запустите make, и сможете использовать его на месте по /pstrings. Для проверки, откройте текстовый редактор командной строки (например, Nano) и введите в нем This is a test [Это тест].

Теперь с помощью ps ax I grep nano выясните ID только что запущенного процесса Nano. Передайте полученный ID в Pstrings командой

./pstrings <ID> I less

— и перед вами появится текстовый контент памяти процесса. Прокрутка вверх-вниз покажет сотни строк контента из редактора — текстовые подсказки, информацию парсера и т.д. Но введите /This is a test, чтобы сузить поиск, и вы увидите текст, введенный в Nano. Опций настройки результата немало, поэтому не поленитесь заглянуть в README.md.