Статья описывает возможное решение для задачи запуска приложений таким образом, чтобы в последствии и само приложение и факт его запуска были не замечены.
Задача достаточно интересная с технической стороны. Приложение не должно присутствовать на жёстком диске. Внешний носитель тоже не является решением. Единственное решение - память. Оно и было выбрано. Однако просто так приложение в памяти не появится. Можно конечно скопировать руками, но это не очень удобно. Поэтому повысив немного риск обнаружения приложения можно существенно автоматизировать процесс. Но обо всём по порядку.
Окончательно идея выглядит так: есть некоторый раздел в памяти, подмонтированный как tmpfs. Если при загрузке присутствует флэш-карта - её содержимое копируется в память. После чего флэшку можно убрать и продолжить работу.
Теперь переходим к реализации. Для примера возьмём дистрибутив Kubuntu 7.10, поэтому всё написанное здесь будет справедливо в первую очередь для него.
Итак. Создаём виртуальный раздел в памяти. Для этого создаём папку /etc/hack и добавляем в /etc/fstab следующую строку:
none /etc/hack tmpfs defaults,size=10m 0 0
Для примера создаём раздел в десять мегабайт. Реально необходимый размер зависит от конкретной ситуации.
Далее создаём скрипт /etc/hack.sh следующего содержания:
#!/bin/sh # имя нода нашей флэш-карты DRIVENAME="/dev/sdb1" # если нод существует (карта подключена) if [ -e $DRIVENAME ]; then # монтируем карту mkdir -p /tmp/hack mount $DRIVENAME /tmp/hack # копируем её содержимое в память cp -vR /tmp/hack/* /etc/hack # отмонтируем карту umount /tmp/hack # делаем владельцем всех файлов того пользователя, # который и будет работать с этой программой. chown -vR user /etc/hack fi
Затем нужно добавить в файл /etc/rc.local вызов этого скрипта:
sh /etc/hack.sh
Теоретически на этом всё. Но для удобства пользователя хорошо бы создать ярлык для программы на рабочем столе. Для этого можно воспользоваться хитростью: создать ярлык на некий внешний скрипт, который при наличии в памяти нашего приложения будет запускать его, а при отсутствии - что-нибудь другое.
Пример такого скрипта:
#!/bin/sh if [ -e /etc/hack/app.bin ]; then /etc/hack/app.bin; else konqueror http://google.ru; fi
Теперь при отсутствии программы будет запускаться браузер и открывать главную страницу известного поисковика.
На этом действительно всё. Теперь если загружать компьютер без флэш-карты на нём ничего не нужного найдено не будет (правда будут следы запуска некоего приложения, но сам этот факт ещё не указывает на конкретное приложение).
2008-01-11 12:27:52 (#)