LINUX.ORG.RU

Расковырять бинарный файл — from spohelp.ru


0

0

Как известно, академия АйТи выиграла конкурс на обучение специлистов по внедрению СПО в школах и даже действительно у них есть или был довольно неплохой учебный курс.
Судя по всему, ФАО требует от всех школ установить хотя бы на одном компьютере пакет СПО и зарегистрировать его. Для такой регистрации требуется установить на компьютере пакет и запустить от рута некий скрипт, отправляющий на их сайт информацию.
И в том числе там есть вот такой файл:
http://omploader.org/vNDBzYg/sign_ou
Все остальные файлы текстовые и их назначение и принцип действия вполне понятен, но есть вот такой бинарник. Что конкретно он делает и не содержит ли вредоносного кода? Исходники к нему я не нашел.

★★★★★

Если кто-нибудь умеет расковыривать бинарники прошу помочь.
Я так понимаю, что как минимум нужно выполнить его через strace, это покажет хотя бы системные вызовы.

Насколько я понимаю, он всего лишь берет мак-адрес и возвращает его хеш, но хотелось бы точно знать, не спрятано ли там ещё что-нибудь.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от Xenius

а что, у вас strace забанен?

$ strace ./sign_ou 1
execve("./sign_ou", ["./sign_ou", «1»], [/* 43 vars */]) = 0
open(«/dev/urandom», O_RDONLY) = 3
read(3, «C=», 2) = 2
close(3) = 0
write(1, «Oops, wrong address\n», 20Oops, wrong address
) = 20
_exit(1) = ?


hizel ★★★★★
()

Дебагер тебе в руки.

А вообще я бы не ковырял бинарник, а запустил бы его в ограниченном окружении проверив до и после контрольную сумму каждого файла и сетевой трафик словить tcpdump'ом для разбора, если это важно.

sdio ★★★★★
()

Уже интересный вопрос — а зачем он открывает /dev/urandom? вроде вывод всегда один и тот же.
strace забанен в виртуалке, да.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от Xenius

Чтож это за виртуалка такая?

PS возьми другую

anonymous
()

что-то я видимо в gdb не понимаю :-(


test@hzwork:~$ objdump -f sign_ou

sign_ou: file format elf32-i386
architecture: i386, flags 0x00000102:
EXEC_P, D_PAGED
start address 0x080480c0

test@hzwork:~$ gdb -q sign_ou
Reading symbols from /home/test/sign_ou...(no debugging symbols found)...done.
(gdb) tb *0x080480c0
Temporary breakpoint 1 at 0x80480c0
(gdb) r
Starting program: /home/test/sign_ou
Oops, wrong address

Program exited with code 01.
(gdb)

hizel ★★★★★
()
Ответ на: Готово от anonymous

Не очень понятно. Главный вопрос: есть ли там что-то кроме чистой математики?

Xenius ★★★★★
() автор топика
Ответ на: комментарий от Xenius

там вкомпиленно статически часть openssl, как минимум md5sum
и в выхлопе ананимуса нет самого интересного - функции main :(

hizel ★★★★★
()

Бинарник ожидает параметр - строку длиною 17 символов.
При запуске без параметров, как уже было отмечено, выводится «Oops, wrong address».
Посмотри, с какими параметром он у тебя вызывается - может что-то и прояснится.
Читает файл /etc/ou-key - что у тебя в нем?

На первый взгляд ничего криминального, считается какой-то хэш.

bigbit ★★★★★
()

хоспадя, ну бональная писанная на коленках в метро эцп. Читай sign_ou.sh там всё очень понятно написано, чё куда подставляется. Отчёты они отправляют вообще wget'ом. ЗЫ. И как следствие, никто не мешает хоть за всю школу посылать отчёты, с одного компа.

anonymous
()
Ответ на: комментарий от anonymous

Да. Но бинарный файл... Почему-то исходника нет, а это сразу подозрение вызывает.

Xenius ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.