Перейти к содержимому

Z linux как расшифровать

  • автор:

Шифрование Linux (часть 1). Полное шифрование Ubuntu/Centos при установке (LUKS,cryptsetup)

Здравствуйте. Решил написать серию статей по криптованию. Что такое криптование, и какие есть шифры, алгоритмы и т.п. рассказывать не буду, так как есть море литературы, из которой можно почерпнуть все, что интересует по данному вопросу. Я буду использовать систему криптования dm-crypt, для управления которой используется утилита cryptsetup в которой есть встроенная поддержка LUKS для криптования операционных систем семейства Linux. В данном случаи это будут самые распространенные ОС – семейство deb (Ubuntu, Debian) и семейство rpm (Centos, Red Hat).

Начнем с самого простого метода – шифрование при установке ОС. Все действия я проделал на VMware workstation. Для начала возьмем Ubuntu 12.04 server. Процесс установки – стандартный, пока не дойдем до разметки диска. Где нам нужно выбрать Guided – use entire disk and set up encrypted LVM.

Далее Вас попросят записать все изменения на диск (жмем YES) и предложат ввести пароль шифрования. На данном этапе можно ввести любой пароль, так как в дальнейшем его можно очень просто поменять.

Далее все идет по старинке.
После перезагрузки нас попросят ввести пароль для разлочки диска с файловой системой.

После введения пароля cryptsetup расшифрует зашифрованный диск и смонтирует его в рутовую файловую систему. Теперь можно войти в систему и посмотреть на смонтированные диски.

root@ubuntu:~# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/ubuntu-root ext4 19G 1.3G 17G 7% / udev devtmpfs 484M 4.0K 484M 1% /dev tmpfs tmpfs 198M 312K 198M 1% /run none tmpfs 5.0M 0 5.0M 0% /run/lock none tmpfs 495M 0 495M 0% /run/shm /dev/sda1 ext2 228M 28M 189M 13% /boot

Из вывода не понять – зашифровано диск или нет… Для этого мы можем посмотреть заголовок диска.

root@ubuntu:~# ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 10 Sep 9 08:44 2601e28d-a376-4e0c-86ca-0b0366db8b03 -> ../../dm-1 lrwxrwxrwx 1 root root 10 Sep 9 08:44 a8f47a3a-295c-4943-9612-b0ae18faa44c -> ../../sda5 lrwxrwxrwx 1 root root 10 Sep 9 08:44 ac168f69-bbad-4918-828e-9dbc45b12f11 -> ../../dm-2 lrwxrwxrwx 1 root root 10 Sep 9 08:44 dd05faae-0144-4454-8aef-175f3f362126 -> ../../sda1 root@ubuntu:~# hexdump -C /dev/sda5 | head 00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS. aes. | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |. | 00000020 00 00 00 00 00 00 00 00 63 62 63 2d 65 73 73 69 |. cbc-essi| 00000030 76 3a 73 68 61 32 35 36 00 00 00 00 00 00 00 00 |v:sha256. | 00000040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 |. sha1. | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |. | 00000060 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 20 |. | 00000070 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 |JB. @.G. >.T| 00000080 28 f2 a8 19 f9 d5 02 17 6f a6 75 8c 2a bf d5 5c |(. o.u.*..\| 00000090 c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 |.qvB..v_R$.w. |

Как видно, диск зашифровано алгоритмом AES + cbc-essiv + sha256.
Точно такие же шаги нужно сделать для шифрования ОС семейства rpm (Centos, Red Hat). Хочу заметить, в Linux можно шифровать блочные устройства из-за существования initramfs – файловой системы, которая монтируется до того, как смонтируется рутовая файловая система. Об этом пойдет речь в следующей статье. А пока можно поэкспериментировать.
Посмотрим, сколько слотов ключей используется на данный момент для зашифрованного диска.

root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: DISABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

Как видно, используется только один ключ для шифрования/дешифрования (ключ, который вводили при установке ОС для криптования раздела). Добавим еще один ключ.

root@ubuntu:~# cryptsetup luksAddKey /dev/sda5 Enter any passphrase: Enter new passphrase for key slot: Verify passphrase: root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: ENABLED Iterations: 130410 Salt: b3 2e ca 72 ca c7 58 16 f5 b1 51 fb 57 6f 7d 9c 20 69 4e a4 e4 e1 6b 17 d7 21 51 9c 46 a9 87 7a Key material offset: 264 AF stripes: 4000 Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

Теперь у нас есть 2 ключа для расшифровки диска. Так же мы можем добавить бинарный ключ, или же записать длинный пароль в текстовый документ и добавить к ключам.

root@ubuntu:~# echo -ne `openssl rand -base64 32` > key.txt root@ubuntu:~# cat key.txt w3loOHwRiyS6Xv28M7FpoGqJ+Kp27MWcZ5j51+9EOKA=root@ubuntu:~# root@ubuntu:~# cryptsetup -q luksAddKey /dev/sda5 /home/alex/key.txt Enter any passphrase: root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: ENABLED Iterations: 130410 Salt: b3 2e ca 72 ca c7 58 16 f5 b1 51 fb 57 6f 7d 9c 20 69 4e a4 e4 e1 6b 17 d7 21 51 9c 46 a9 87 7a Key material offset: 264 AF stripes: 4000 Key Slot 2: ENABLED Iterations: 143385 Salt: de c0 16 f9 c9 6d 76 1c f3 3b 50 7c b8 90 1a 87 67 e8 90 24 6a ac 92 a8 ca b3 1f 8e bd 5d 80 77 Key material offset: 520 AF stripes: 4000

Здесь мы добавили 256 битный ключ, который можно ввести из клавиатуры (используется кодировка base64 ). Также можно добавить бинарный ключ, который с клавиатуры ввести нереально (для простых смертных). Такие ключики нужно сохранять на съемном носителе, на незашифрованной файловой системе или где-то на удаленном сервере. Это ключи типа

root@ubuntu:~# dd if=/dev/urandom of=my.key bs=1 count=256 256+0 records in 256+0 records out 256 bytes (256 B) copied, 0.00294037 s, 87.1 kB/s root@ubuntu:~# less my.key "my.key" may be a binary file. See it anyway? i^F0Mrq<8C>Vl^VT-^G<8C>d<81>;^?^V<8D><81>4d<98>g^Y,z pZaU^V0б„Ћ*R@<гџЄ_!K0Ъ‰B<9F>m6^G<9B>ЕЇ<8D>ШЏ5<88>О‰<8C> f<91>? ^Cg<85>Un9<86><81>\w:О¤<96>]I^C ^_C-VX|4<82>^S,Yx<86>^U|L|^Q<87>M^\<83>x<99>Е“O<99>6I^M^N^Tk<96>%^W^Yn^W6^R^X^]<8A><92>^L^QJ^Qv#C^K<91>5<9C>]<95>$P<9D>^KНЅMW<^_yМіVk<8F>

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

root@ubuntu:~# cryptsetup luksKillSlot /dev/sda5 1 Enter any remaining LUKS passphrase: root@ubuntu:~# cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 4096 MK bits: 256 MK digest: 4a 42 ae 10 94 9d 98 40 b7 47 0e 93 d1 7d 12 54 28 f2 a8 19 MK salt: f9 d5 02 17 6f a6 75 8c 2a bf d5 5c c5 71 76 42 0f 13 76 5f 52 24 14 77 05 ca ef 19 13 4d eb 8f MK iterations: 35125 UUID: a8f47a3a-295c-4943-9612-b0ae18faa44c Key Slot 0: ENABLED Iterations: 140979 Salt: b6 be 7b 49 9b ea 61 78 ed 6b c2 9f 2b 3b 8f ad 18 e0 a5 cb 94 50 96 12 e9 5c 6c 3b bc c3 30 8a Key material offset: 8 AF stripes: 4000 Key Slot 1: DISABLED Key Slot 2: ENABLED Iterations: 143385 Salt: de c0 16 f9 c9 6d 76 1c f3 3b 50 7c b8 90 1a 87 67 e8 90 24 6a ac 92 a8 ca b3 1f 8e bd 5d 80 77 Key material offset: 520 AF stripes: 4000

Если у нас есть ключ в виде файла, то удалять и добавлять ключи можно используя опцию.

root@ubuntu:~# cryptsetup --key-file /home/alex/my.key luksKillSlot /dev/sda5 0

Немного полезной информации можно почерпнуть здесь

root@ubuntu:~# less /usr/share/doc/cryptsetup/README.Debian.gz

Проверить какие алгоритмы шифрования поддерживаться в вашем ядре и какая минимальная и максимальная длинна ключа.

root@ubuntu:~# cat /proc/crypto name : cbc(aes) driver : cbc(aes-generic) module : kernel priority : 100 refcnt : 65 selftest : passed type : givcipher async : no blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : eseqiv name : cbc(aes) driver : cbc(aes-generic) module : kernel priority : 100 refcnt : 65 selftest : passed type : blkcipher blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : name : hmac(sha256) driver : hmac(sha256-generic) module : kernel priority : 0 refcnt : 2 selftest : passed type : shash blocksize : 64 digestsize : 32 name : hmac(sha1) driver : hmac(sha1-generic) module : kernel priority : 0 refcnt : 2 selftest : passed type : shash blocksize : 64 digestsize : 20 name : stdrng driver : krng module : kernel priority : 200 refcnt : 2 selftest : passed type : rng seedsize : 0 name : crc32c driver : crc32c-generic module : kernel priority : 100 refcnt : 1 selftest : passed type : shash blocksize : 1 digestsize : 4 name : aes driver : aes-generic module : kernel priority : 100 refcnt : 129 selftest : passed type : cipher blocksize : 16 min keysize : 16 max keysize : 32 name : sha256 driver : sha256-generic module : kernel priority : 0 refcnt : 5 selftest : passed type : shash blocksize : 64 digestsize : 32 name : sha224 driver : sha224-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 28 name : sha1 driver : sha1-generic module : kernel priority : 0 refcnt : 3 selftest : passed type : shash blocksize : 64 digestsize : 20 name : md5 driver : md5-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 16

В следующей статье пойдет речь об конкретной установке и настройке зашифрованной Ubuntu и удаленной разлочке.

Команда top в Linux

Любой сервер, каким бы мощным он ни был, имеет ограниченный объем ресурсов. Каждая программа, работающая в активном или фоновом режиме, использует определенное количество виртуальной и физической памяти, процессорного времени и т.д. Иными словами, создает определенную нагрузку на сервер. Чтобы посмотреть, насколько система загружена в данный момент времени, используют консольную команду top.

Команда top в Linux системах позволяет вывести в виде таблицы перечень запущенных процессов и оценить, какой объем ресурсов они потребляют, т.е., какую нагрузку создают на сервер и дисковую подсистему. Такая информация помогает в дальнейшем оптимизировать работу системы.

Запуск команды top и расшифровка таблицы

Подключитесь к серверу по SSH и введите в консоли top – Enter и вы увидите таблицу, в которой выведен список запущенных процессов. Изначально перечень составлен в порядке убывания нагрузки, приходящейся на процессор.

Запуск команды top и расшифровка таблицы

О том, как сортировать данные по критерию, который нужен вам, поговорим дальше. А сейчас давайте рассмотрим, как расшифровать столбцы в таблице и о чем свидетельствуют значения в каждом из них.

Первые два столбика – номер процесса (PID) и имя пользователя, его запустившего (USER).

Следующие 2 столбца показывают, какой приоритет имеет процесс в данный момент (PR) и приоритет, присвоенный ему командой NICE (NI).

Информация, содержащаяся в других колонках, характеризует непосредственно уровень потребления ресурсов. Расшифровываются они следующим образом:

**VIRT – виртуальная память, которую использует процесс
**RES – физическая память, занятая данным процессом
**SHR – общий объем памяти, которую данный процесс делит с другими
**S – текущий статус процесса: R – running; S – sleeping, Z – zombie
**%CPU – процент используемого времени центрального процессора
**%MEM – процент ОЗУ, используемой процессом
**TIME+ – продолжительность работы процесса с момента запуска
**COMMAND – название команды (программы), которая инициировала процесс.

Расшифровка данных перед таблицей

Полезная информация об использовании ресурсов содержится не только в самой таблице, но и в пяти строках, которые ей предшествуют. Они являются своего рода summary по всем процессам.

Первая строчка (top) дает нам общее представление о загрузке системы. Здесь указано:

** текущее время
** up – продолжительность работы системы с момента запуска
** user – текущее количество пользователей системы
** load average – средняя загруженность системы одну минуту назад, пять и 15 соответственно.

Считается, что в норме данный показатель не должен превышать 1 для одноядерных процессоров. Соответственно, значение load average, равное количеству ядер, является предельным.

Вторая строка данных дает информацию об общем количестве процессов в системе, а также об их статусе: выполняемые (running), в ожидании (sleeping), приостановленные (stopped), zombie.

Далее идет информация о состоянии процессора (%Cpu), ОЗУ (Mem), SWAP.

Добавление столбцов и сортировка таблицы top

Теперь вы знаете, какая информация зашифрована в каждом столбце таблицы top. Как было отмечено в начале, базовая сортировка данных осуществляется по уровню использования времени ЦПУ, оно же %CPU. Чтобы выполнить в top сортировку по памяти (%MEM), достаточно ввести Shift+M в режиме работы команды top. Если интересует, какой из процессов дольше всего работает, нажмите Shift+T, и увидите интересующую информацию в колонке TIME+. Можно отсортировать процессы по их номеру (PID), набрав на клавиатуре Shift+N.

Чтобы вернуться к режиму сортировки по уровню потребления ресурсов процессора, воспользуйтесь комбинацией Shift+P.

Далеко не все способы сортировки можно задать с помощью “горячих клавиш”. Например, для определения процессов, которые больше всего потребляют SWAP, используйте меню выбора полей, которое вызывается комбинацией Shift+F.

Добавление столбцов и сортировка таблицы top

С помощью клавиш навигации находим SWAP (или любой другой нужный параметр), клавишей “d” закрепляем его добавление в общую таблицу команды top (в качестве подтверждения вашего выбора рядом появится символ “*”). Чтобы задать сортировку по SWAP, здесь же нажимаем “s” и выходим из меню (ESC). Готово!

Убедиться, что сортировка работает по заданному признаку, можно нажав “x”. Колонка с соответствующим признаком будет подсвечена (выделена жирным шрифтом).

Сортировка по заданному признаку

Теперь вы не только знаете, как расшифровать содержащуюся в таблице информацию, но и умеете добавлять в нее необходимые параметры, работать с фильтрами. Благодаря команде top вы легко найдете процессы, которые потребляют наибольшее количество ресурсов и/или работают без надобности.

Теперь оптимизировать работу сервера гораздо проще!

On-line журнал o Linux

Начинающий пользователь, естественно начинает осваивать OS Linux с графического интерфейса. Но через некоторое время решает попробовать и работу в командной строке linux.В конечном счёте, к этому подойдёт практически каждый. Это довольно интересный и увлекательный процесс.Только в командной строке открывается вся мощь этой операционной системы. В этом обозрении идет перечисление самых основных команд. Всё это есть в справочном руководстве — man, но сначала, возможно будет не с руки им пользоваться. Сперва попробуйте просто набирать команды данные ниже без дополнительных параметров (которых довольно много и можно узнать задав “команду –help”или “man имя команды”.

Просьба по возможности корректировать или дополнять этот список в комментариях. Многи из нижеприведенных комманд — “Unix like”, это значит что Вы сможите их использовать также, в основаных на Unix операционных системах, например — Mac OS X и др.

  • login запрос от пользователя имени и пароля (запрос от системы к пользователю) для входа в систему( по умолчанию, при наборе пароля, он не отображается).
  • logout выход из текущего сеанса оболочки.
  • startx команда для запуска графического интерфейса X Window (не путайте с системой Windows.Не бойтесь. Это не она:)).
  • shutdown останавливает систему и предотвращает повреждение файловой системы при этом, но,используется только при работе в консольном режиме.При работе в режиме X Window, не используйте.
  • halt быстрое и корректное выключение системы.
  • poweroff корректное выключение системы.
  • reboot корректное выключение с последущей загрузкой.Перезагрузка.
  • vmstat выдаёт сведения о процессах, памяти и загруженности центрального процессора.
  • su вход в сеанс администратора, но прийдётся ввести пароль.Для выхода из этого сеанса наберите exit и нажмите ENTER.
  • apropos поиск строки в заголовках и названиях документации ( дополнительно вводится слово для поиска). Выдаёт список всего найденного.
  • cal форматированный календарь на текущий месяц ( добавить y и будет календарь на весь текущий год).
  • date отображает текущие дату и время, по системным часам ядра.
  • oclock простые часы, которые висят на рабочем столе (много дополнительных параметров).
  • finger отображение информации о пользователе, имя которого указано в команде.
  • hostname команда отображает идентификатор данного узла сети ( его имя). root может изменить имя узла на новое.
  • hwclock встроенные часы Вашего компьютера.Для изменения даты и времени и синхронизации с системными часами, необходимы привелегии root.
  • pwd отображает полный путь к текущему каталогу.
  • tzselect запуск утилиты, которая позволяет выбрать часовой пояс.
  • uname выводит информацию об используемой операционной системе (при вводе дополнительных параметров команды , выдаёт довольно много информации).
  • uptime показывает текущее время, продолжительность сеанса , количество пользователей и загруженность процессора.
  • users отображает краткий список пользователей работающих в системе в данный момент.
  • w подробная информация о всех пользователях, работающих в данный момент и также простой, вход в систему и др.Если нужен один пользователь, то указать имя в параметре.
  • whatis поиск по базе данных страниц руководства и отображение краткого описания.
  • who список пользователей работающих в системе в данный момент.
  • whereiz находит файлы, страницы справочного руководства для указанной команды.
  • which показывает полный путь к исполняемому файлу команды.
  • whoami показывает текущий идентификатор пользователя, работающего в данном терминале.
  • write отправляет сообщение другому пользователю, находящемуся в системе, путём копирования строк с терминала отправителя на терминал получателя.
  • wall отправляет сообщение на терминал каждого пользователя находящегося в системе в данный момент.
  • history показывает пронумерованный список команд, которые Вы выполняли в этом и предыдущем сеансе. Если в списке историии их довольно много, то увидите последние.
  • jobs выводит список всех выполняемых и приостановленных задач.
  • kill завершить процесс (необходимо указать какой).
  • killall позволят управлять процессами используя их имена или имена файлов, а не идентификаторы как в kill. Завершаются все указанные процессы.
  • kernelversion показывает основную и дополнительную версии ядра.
  • nice позволяет отобразить или настроить приоритет задачи.
  • ps выводит список всех работающих процессов.
  • pstree показывает иерархию процессов системы, что хорошо показывает их взаимозависимость.
  • renice задаёт приоритет для указанной задачи.
  • script позволяет записывать весь вывод с терминала в файл.Что бы остановить запись нажмите Ctrl+d.Если имя файла не указано то записывается в typescript.
  • times показывает полное время выполнения процессов для всей системы и данного пользователя.
  • top запускает программу , которая позволяет управлять процессами.И ещё много дополнительной, полезной информации.
  • cd смена текущего каталога.По умолчанию переходит в домашний каталог текущего пользователя (если без параметров).
  • dir отображает файлы в текущем каталоге в алфавитном порядке и с учётом регистра.
  • file показывает тип содержимого указанного файла(текст, выполняемый, данные).
  • find поиск файлов в текущем каталоге.Если указать путь, можно искать везде.
  • free отображает информацию об оперативной памяти, подкачки, кэше,свободная памать, общая и т.д.
  • ls показывает все файлы в текущем каталоге в алфавитном порядке.Аналогична dir.
  • last показывает список пользователей, которые заходили в систему с момента создания файла /var/log/wtmp.
  • lastlog проверяет историю входа в систему зарегистрированных пользователей.Форматирует и выводит на печать файл /var/log/lastlog.
  • logger посылает запрос демону syslogd с просьбой поместить сообщение в системный журнал.
  • lpr отправляет документ на печать демону печати.
  • chmod изменяет режим доступа к файлу.Символьный или числовой формат.
  • chown смена владельца указанного файла.Требуется доступ root.
  • chage применяется для изменения срока действия учетной записи.Для администрирования.
  • chfn изменяет сведения о пользователе в файле /etc/passwd из которого берёт информацию команда finger .
  • chgrp команда для администратора,для изменения группы владельцев файла.
  • clear очищает экран терминала (если это возможно).
  • crontab обеспечивает возможность выполнения определённых задач по расписанию. Чаще используется администратором, хотя свои задачи могут быть и у пользователей.
  • csplit разбивает файл на несколько частей.Надо задать метод разбивки (строки и т.д.).
  • cp копирует один файл в другой, или несколько файлов в каталог.
  • dd копирование файла с одновременным выполнением различных, дополнительных преобразований.
  • dc калькулятор.
  • debugfs применяется для восстановления файловой системы (ext2,ext3) если недостаточно команды fsck.
  • df показывает количество используемого и свободного дискового пространства для всех подключенных разделов файловой системы.
  • du показывает количество блоков диска, занятых каждым из файлов каталога.
  • mc запускает программу Midnight Commander диспетчер файлов в текстовой консоли. Напоминает MSDOS менеджеры и довольно проста и удобна в использовании.Очень много нужных и удобных функций.
  • mkdir создание указанного каталога.
  • man справочное руководство.
  • mcat копирует необработанные данные на дискету.
  • mcopy использует отформатированную дискету MSDOS для копирования файлов в Линукс и из Линукс без предварительного подключения дискеты к файловой системе.
  • mdel удаляет файл на отформатированной дискете MSDOS.
  • mdir отображает содержимое каталога на дискете MSDOS.
  • mdu показывает дисковое пространство занятое каталогом MSDOS.
  • mesg контролирует доступ к Вашему терминалу, что бы коллеги не могли засыпать Вас сообщениями с помощью команды write
  • mformat создаёт на дискете файловую систему MSDOS.
  • mkbootdisk применяется в некоторых дистрибутивах, для создания загрузочной дискеты, содержащей всё необходимое для аварийной загрузки.
  • mktemp создаёт уникальное имя файла для временной работы.
  • mlabel создаёт метку тома на MSDOS на отформатированной дискете.
  • mmd создаёт подкаталог MSDOS на отформатированной дискете.
  • mmount подключает к файловой системе отформатированное устройство MSDOS.
  • mmove перемещает или переименовывает файл на дискете MSDOS.
  • more средство постраничного просмотра текстового файла.
  • mv переименовывает или перемещает файлы или каталоги.
  • rm удаление указанного файла.Можно и много удалить.
  • rmdir удаление указанного пустого каталога.
  • safedelete удалиние указанного файла в каталог safedelete,где он хранится некоторое время перед необратимым удалением.
  • stat отображение всей доступной информации об указанном файле.
  • touch изменяет время последнего доступа или изменения файла на текущее время.
  • undelete восстанавливает файлы удалённые командой safedelete.
  • wc показывает число строк, слов и символов в файле.
  • bunzip2 распаковывает указанный файл на 30%быстрей чем gzip.
  • bzip2 сжимает указанный файл по ускоренному алгоритму.
  • bzip2recover делает попытку восстановить данные из повреждённого файла сжатого bzip2.
  • compress сжимает указанный файл по другому алгоритму.
  • uncompress распаковывает файл сжатый предыдущей командой.
  • cpio позволяет создавать архивы и извлекать из архивов файлы.Позволяет копировать файлы. Необходимо указывать соответствующие параметры.
  • gpg позволяет зашифровать и расшифровать файл.Метод шифрования открытым ключом. Позволяет создавать электронные подписи.Если этой программы нет у Вас, скачайте http://www.gnupg.org
  • gzip сжимает указанный файл.
  • gunzip распаковывает указанный файл (расширения .Z,.gz,.tgz,.zip ).
  • gzexe позволяет сжать исполняемый файл с указанным именем так, что бы он автоматически распаковывался и выполнялся, когда пользователь даёт команду на выполнение сжатого файла.
  • gpasswd устанавливает пароль группы.
  • mcrypt Шифрует указанный файл.Создаётся новый файл в рабочем каталоге с расширением .enc. Вам будет предложено ввести пароль.Не забудьте его.
  • mdecrypt расшифровывает это же файл.Если этих утилит нет, скачайте http://mcrypt/hellug.grl
  • tar помещает два и более файлов в новый или существующий архив или извлекает их из архива.При задании каталога, заархивирует все файлы в каталоге и подкаталоге.
  • talk позволяет вести интерактивный диалог с пользователем сети ИНТЕРНЕТ.
  • tee отсылет выходные данные на два устройства вывода.Можно одновременно вывести на экран и в файл.
  • toe выдаёт сведения о существующих терминалах, которые могут быть использованы для дальнейшей работы.
  • touch изменяет время создания файла на текущее.Если файл не существует, то создаёт новый, пустой файл.
  • unarj распаковывает или выводит список содержимого указанного архива в формате .ARJ(формат сжатия MS DOS).
  • unzip распаковывает и извлекает файлы из архивов , созданных утилитами ZIP ( Linux,MS DOS,Microsoft Windows ).
  • zip архивирует и сжимает файлы.
  • zipinfo отображает информацию о содержимом архива.Если указать имя, то выдаст информацию о конкретном файле.
  • zipnote позволяет вывести и отредактировать комментарии к файлам из архива ZIP.
  • zipsplit позволяет разделить архив zip на достаточно маленькие части, для записи их на сменные носители, и записывает файлы на указанное устройство(дискеты).
  • zforce добавляет расширение .gz ко всем файлам в рабочем каталоге, или к указанному файлу, которые были сжаты, но не имеют расширения.Т.е. предотвращает повторное сжатие.
  • uuencode кодирует двоичный файл для передачи по ASC11сетям.
  • uudecode декодирует выше названный файл.
  • autorun автоматически распознаёт все доступные приводы CDROM в системе, монтирует их при вставке диска и может запускать отдельные приложения (например проигрыватель).Для использования, необходимо добавить параметры в файл привода.
  • badblocks проверить указанное устройство на наличие повреждённых секторов (указать устройство).
  • eject извлекает носитель из указанного устройства.Если устройство смонтировано то команда производит размонтирование перед извлечением носителя.
  • e2fsck проверяет и при необходимости восстанавливает повреждённый том файловой системы (ext2,ext3).
  • echo выводит строку текста на стандартное устройство вывода.
  • fdformat форматирование гибкого диска.Дополнительно вводится имя устройства и необходимый вид форматирования.
  • fg переводит процесс выполняемый в фоновом режиме в приоритетный режим.
  • fgconsole показывает количество активных виртуальных консолей.
  • fsck проверяет и восстанавливает файловую систему.
  • mount монтирование файловой системы.
  • umount отмонтирование файловой системы (в обоих командах необходимо указать, что именно).
  • rdev при вызове без параметров выводит информацию о текущей файловой системе.
  • rcp применяется для копирования файлов с одного компьютера на другой.
  • rdate получает значение даты и времени от другого узла сети.Используется для синхронизации системного времени узлов.
  • rename переименовывает файлы.Очень удобно, когда много файлов.
  • resize изменяет размер окна виртуального терминала в графическом окружении.
  • restore восстанавливает файлы заархивированные с помощью команды dump.
  • runlevel отображает текущий и предыдущий уровни выполнения.
  • shred выполняет безопасное удаление файла предварительно перезаписав его содержимое на другой диск.
  • sleep приостанавливает начало выполнения процесса на заданное количество секунд.
  • usleep приостанавливает на микросекунды.
  • sync очищает буферы файловой системы.
  • cmp производит быстрое сравнение двух указанных файлов.Если они идентичны, то никакие сообщения не выводятся.
  • column форматирует входной текст из указанного файла в список из пяти колонок.
  • diff сравнивает два указанных текстовых файла.Каждое отличие выводится в контексте. Позволяет сравнивать каталоги.
  • diff3 сравнивает три указанных файла и выводит результаты.
  • enscript преобразует указанный текстовый файл в формат Post Script.Вывод может быть направлен на печать или записан в файл.
  • fmt данная утилита производит форматирование каждой строки в указанном файле таким образом, что все строки имеют одинаковую ширину.
  • head утилита выводит первые десять строк файла.Можно и несколько файлов.
  • ispell запуск интерактивной утилиты для проверки орфографии в указанном файле.
  • id отображает действующие значения идентификаторов пользователя и группы для текущего пользователя.
  • ifconfig отображает состояние текущей конфигурации сети или настраивает сетевой интерфейс.
  • less отображает содержимое указанного файла на экране и позволяет удобно просмотреть.
  • nl команда нумерует строки в указанном файле.
  • paste обьединяет соответствующие строки файлов в колонки.При желании можно обьединить несколько файлов.
  • pdf2ps преобразует файл формата PDF в Post Script.Результат записывает на диск.
  • pdftotext преобразует файл из формата PDF в текст и записывает результат на диск.
  • pr подготавливает текст к печати, осуществляя форматирование с разбиением на страницы.Можно подготовить несколько файлов.
  • sort команда позволяет отсортировать строки файла в алфавитном порядке.
  • split разбивает файл на части.
  • zcat;zmore выводит содержимое файла сжатого gzip на экран без распаковки.
  • zcmp сравнивает сжатые gzip два файла без распаковки.
  • zdiff сравнивает сжатые gzip два файла без распаковки.
  • zegrep;zfgrep;zgrep осуществляют поиск указанной строки, выражения в файле сжатом gzip, без распаковки.
  • aumix запускает в интерактивном режиме утилиту, которая управляет различными настройками звуковой карты.
  • cdda2wav утилита предназначена для записи звуковых дорожек с аудиокомпакт диска в файлы формата WAV.Если имя файла не указано, то запись идёт в файл audio.wav в текущем каталоге.
  • cdlabelgen команда предназначена для подготовки обложек к коробкам компакт дисков. Результат в файле формата Post Script.Требуется наличие интерпретатора языка Perl не ниже 5.003 версии.
  • cdp запуск проигрывателя аудиокомпакт дисков в текстовом режиме.
  • cdparanoia считывает звуковые дорожки с аудиокомпактов и записывает в файлы WAV,AIFF,RAW.
  • combine обьединяет два и более графических файла в один.Огромное количество спецэффектов.Является частью пакета Image Magick и можно взять http://www.imagemagick.org
  • convert преобразует указанный входной графический файл, в выходной.Распознаёт множество форматов. Скачать так же как и предидущую.
  • identify определяет формат и характеристики графического файла и проверяет целостность и наличие ошибок.
  • mogrify преобразует графический файл и перезаписывает исходный.
  • montage преобразование нескольких файлов в обьединённое изображение.Скачать http://www.imagemagick.org
  • mpg123 воспроизводит на основном устройстве воспроизведения аудио файл в формате MP3. Вписывается имя файла или его адрес в Интернет.Чтобы остановить воспроизведение Ctrl+c.Что бы остановить и выйти из программы Ctrl+c нажать дважды.
  • play воспроизводит звуковой файл с указанным именем.Автоматически распознаёт тип файла. Позволяет добавлять различные звуковые эффекты к воспроизводимым файлам.
  • playmidi воспроизводит зуковые файлы в формате MIDI.
  • rec записывает входной сигнал с микрофона или других входов в звуковой файл. Тип файла следует указать с помощью параметра (type).Есть возможность добавить звуковые эффекты.
  • sox преобразует сэмплы из формата входного сигнала, на выходной с добавлением эффектов.
  • emacs запуск текстового редактора Emacs.
  • joe простой в использовании редактор работающий в текстовом режиме.
  • pico простой и удобный в использовании текстовый редактор.Удобен для редактирования конфигурационных и простых файлов.
  • vi запуск классического текстового редактора VI для UNIX систем.
  • dmesg выводит на экран сообщения ядра, включая отображаемые при запуске и потом. Что бы удобней читать, вводите dmesg|less.
  • groupadd создание группы пользователей с указанным именем.
  • groupdel удаляет группу с указанным именем.
  • groupmod изменяет параметры группы с указанным именем.
  • mkpasswd создаёт высококачественный пароль, состоящий по умолчанию из девяти символов и содержащий по крайней мере буквы в разном регистре и цифры.
  • passwd позволяет пользователю с указанным именем изменять пароль своей учётной записи. root может изменить пароль любого пользователя.
  • pwgen создаёт высококачественный пароль,который хорошо запоминается.Длинна пароля указывается числом. Если этой утилиты нет, скачать http://metalab.unc.edu/pub/Linux/system/security
  • quota показывает текущую статистику использования диска и текущие ограничения для пользователя или группы с указанным именем.
  • quotacheck исследует файловую систему на предмет использования дискового пространства.
  • quotaon включает и отключает ограничения на использование дискового пространства.
  • rpm запускает менеджер пакетов, утилиту,позволяющую устанавливать , проверять и обновлять пакеты с расширением rpm.
  • rpmfind поиск нужного пакета в базе пакетов RPM через ИНТЕРНЕТ.Последняя версия утилиты http://www.rpm.org
  • tmpwatch удаление всех файлов в указанном каталоге, если к ним не осуществлялся доступ в течении последних n часов.Очищает временные каталоги.
  • useradd создание нового пользователя с указанным именем.
  • userdel удаляет пользователя с указанным именем.
  • usermod изменяет параметры пользователя с указанным именем.
  • fetchmail утилита получения почты.Роботает в фоновом режиме.Скачивает почту с указанного сервера. Если её нет, скачать можно http://www.freshmeat.net
  • ftp устанавливает соединение с указанным узлом и позволяет скачивать или закачивать файлы.
  • lynx запуск консольного WEBброузера.
  • mail утилита редактирования и просмотра электронной почты.Отправка и получение писем.
  • netstat вывод информации о сетевой подсистеме.Очень много настроек и параметров.
  • ping отправка на указанный адрес пакетов для проверки возможности соединения с этим узлом.
  • telnet открывает окно терминала на удалённом узле и запускает интерактивный сеанс.
  • wvdial программа подключается к ИНТЕРНЕТ по протоколу PPP с использованием параметров, хранящихся в файле /etc/wvdial.conf
  • wvdialconf осуществляет поиск модема, определяет порт, к которому он подключен, его строку инициализации и максимальную скорость передачи данных.Эта информация автоматически записывается в файл (смотри выше).Требуется доступ root.
  • ar средство архивирования, предназначено для создания и распаковки архива.
  • arch отображает данные об архитектуре центрального процессора.
  • at ставит задания в очередь для последующего выполнения в указанное время.
  • atq показывает список заданий которые поставлены в очередь на выполнение.
Командная строка linux все же это сила
  • Обзор игр в GNU Linux
  • Обзор игр в GNU Linux
  • Find, или поиск в Linux.
  • Пользователи и группы в Linux
  • Выбираем для себя Helpdesk (Service Desk)

Расшифровать текст

У меня есть самопальный скриптик на Perl (Сам писал), который шифрует текст. Принцип простой до безобразия — каждая буква обрабатывается в циферное свое представление, сверху присыпается солью, перцем, возводится в квадрат и прочее. Ну и пишется назад в файл. Расшифровка происходит обратным способом по все той же формуле. Кому интересно, могу подкинуть скриптик. И вот на днях посеял флешку с паролями. (Дурак, балбес). Насколько велика вероятность что ее расшифруют. И, собственно чем? От простого обывателя и такая шифровка поможет, а кто задастся целью разобраться в наборе бессвязных цифр. В общем, чем это можно сделать?

asid
10.03.13 11:57:39 MSK

а кто задастся целью разобраться в наборе бессвязных цифр

тот разберётся. Ещё Шнайер говорил — шифрование самопальными алгоритмами без соотвествующего опыта и наывков спасёт инфо только от вашей младшей сестрёнки.

Reinar
( 10.03.13 12:12:51 MSK )

Security by obscurity

edigaryev ★★★★★
( 10.03.13 12:15:19 MSK )
Ответ на: Security by obscurity от edigaryev 10.03.13 12:15:19 MSK

«Реквестировать» — это, типа, в студию)?

asid
( 10.03.13 12:18:51 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:18:51 MSK

edigaryev ★★★★★
( 10.03.13 12:20:44 MSK )
Ответ на: комментарий от edigaryev 10.03.13 12:20:44 MSK

#!/usr/bin/perl #Вариант под виндовс несколько урезаннее, так как им не ползуюсь и #вообще его нет, но он рабочий #Вариант под виндовс if ($^O eq 'MSWin32') < print "Šà¨¯â®£à ä¨ç¥áª ï ®¡à ¡®âª ä ©« . “ª ¦¨â¥ ¯ãâì ª ä ©«ã: "; chomp ($put = ); if ($put !~ /kr$/) < open (FILE, "$put") || die $! && <>; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (//, $str); foreach $znak (@el_str) < #Тут оставьте сво. формулу $znak_sch = (ord($znak) -1); $znak_sch_pr = $znak_sch." "; @el_str_sch = (@el_str_sch, $znak_sch_pr); >@el_str_sch = (@el_str_sch, "\n"); > unlink $put; open (FILE, ">$put.kr") || die $! && <>; print FILE @el_str_sch; close (FILE); > else < open (FILE, "$put") || die $! && <>; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (/\n/, $str); foreach $znak (@el_str) < @znak_sch = split (/ /,$znak); foreach $zn (@znak_sch) < $znak_ras = chr($zn +1); @el_str_ras = (@el_str_ras, $znak_ras); >@el_srt_ras = (@el_str_ras, "\n"); > > $im_f = substr ($put,0, -3); unlink $put; open (FILE, ">$im_f") || die $! && <>; print FILE @el_str_ras ; close (FILE); > > else < print "Криптографическая обработка файла. Укажите путь к файлу: "; chomp ($put = ); while (1) < if ($put !~ /kr$/) < open (FILE, "$put") || die $!; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (//, $str); foreach $znak (@el_str) < $znak_sch = ord($znak) - 1); $znak_sch_pr = $znak_sch." "; @el_str_sch = (@el_str_sch, $znak_sch_pr); >@el_str_sch = (@el_str_sch, "\n"); > unlink $put; open (FILE, ">$put.kr") || die $!; print FILE @el_str_sch; close (FILE); exit; > else < open (FILE, "$put") || die $!; @text_file = ; close (FILE); foreach $str (@text_file) < @el_str = split (/\n/, $str); foreach $znak (@el_str) < @znak_sch = split (/ /,$znak); foreach $zn (@znak_sch) < $znak_ras = chr($zn + 1); @el_str_ras = (@el_str_ras, $znak_ras); >@el_srt_ras = (@el_str_ras, "\n"); > > $im_f = substr ($put,0, -3); unlink $put; open (FILE, ">$im_f") || die $!; print FILE @el_str_ras ; close (FILE); `gedit $im_f`; > $put = $im_f; next; > > 

asid
( 10.03.13 12:26:23 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:26:23 MSK
Deleted
( 10.03.13 12:28:00 MSK )
Ответ на: комментарий от edigaryev 10.03.13 12:20:44 MSK

В общем происходит расшифровка,открывается блокнот с текстом. После его изменения, сохранения и закрытия, скрипт обратно все кодирует. Формулу подставьте свою, если надо,моя в тайне. Ну там идет n-действий с тем же арифметич принципом:)

asid
( 10.03.13 12:29:58 MSK ) автор топика
Ответ на: комментарий от Deleted 10.03.13 12:28:00 MSK

Поподронее. Не вьехал.

asid
( 10.03.13 12:31:10 MSK ) автор топика
Ответ на: Security by obscurity от edigaryev 10.03.13 12:15:19 MSK

Re: Security by obscurity

Код на перле — сам по себе шифротекст.

Reinar
( 10.03.13 12:34:50 MSK )
Ответ на: Re: Security by obscurity от Reinar 10.03.13 12:34:50 MSK

Мне это расценить как комплимент?

asid
( 10.03.13 12:36:40 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:36:40 MSK

Расценивай как легкую попытку троллинга.
И да, чего ты хотел узнать этим топиком? С твоими паролями вряд ли что-то случится — даже если на флешке есть файл, мудро названный pass.txt, то подавляющая часть народу дальше попытки открыть его notepad’ом не пойдут. А остальные подумают, что он пошифрован чем-то толковым и смысла нет пытаться.
Вероятность того, что найдётся упоротый упорный, который увидит этот файл и засядет делать криптоанализ — прикинь сам.

Reinar
( 10.03.13 12:46:36 MSK )
Ответ на: комментарий от Reinar 10.03.13 12:46:36 MSK

Уфффффф! Утешил. А вообще такие программы по расшифровке есть или файлы расшифровываются, как бы это выразиться, вручную. Вооще, как такие вещи происходят, сам принцип какой?

asid
( 10.03.13 12:50:50 MSK ) автор топика

Откуда нашедшему знать алгоритм шифровки и расшифровки? Он может расшифровать твой текст в что-нибудь совсем другое, чем то, что ты имел в виду.

KendovNorok ★
( 10.03.13 12:55:35 MSK )
Ответ на: комментарий от KendovNorok 10.03.13 12:55:35 MSK

Ну, тогда можно считать абсолютно лююбой алгоритм надежным на 100%. Гм. Надо взять файл, перевести его в двоичный вид, так же обработать. Добавить не много для веса лишнего. Тогда пожалуй, можно не только текст, но и изображения, pdf спрятать.

asid
( 10.03.13 13:01:43 MSK ) автор топика

Ну если у тебя пароли хорошие (типа malaeJ7iey2yishaevei), то не расшифруют.

В смысле если у тебя в файле и так высокая энтропия и мало поясняющих строк (типа Моё мыло и т.д.) то это нереально.

ziemin ★★
( 10.03.13 13:05:18 MSK )
Ответ на: комментарий от ziemin 10.03.13 13:05:18 MSK

В том то и дело, что черным по белому написано: «http://www.linux.org» rgh4759ghrbsj (к примеру) и так далее.

asid
( 10.03.13 13:09:37 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 13:09:37 MSK

А чем keepasx не устроил? Ключевой файл, мастер пароль, база — можно потерять сразу два элемента и пофиг.

ziemin ★★
( 10.03.13 13:12:28 MSK )
Ответ на: комментарий от ziemin 10.03.13 13:12:28 MSK

Да я про нее и не знал. К тому же мне просто было интересно написать скрипт самому, а не пользоваться чужими трудами. Кто знает, вдруг автор оставил там где лазейку?!

asid
( 10.03.13 13:17:03 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 13:17:03 MSK

ziemin ★★
( 10.03.13 13:20:46 MSK )
Ответ на: комментарий от ziemin 10.03.13 13:20:46 MSK

И? Когда я его писал, у меня еще в то время винда стояла. Не просто же так она в тексте предусмотрена. А тогда фраза «Open source» мне еще ни о чем не говорила. От линукса глаза были как уличный фонарь. Вот и пользовался тем что сам делал. И вообще виндовс веры нет, никаким ее программам ни открытым, ни закрытым. Вобщем, можно сильно не париться. Всем спасибо.

asid
( 10.03.13 13:29:25 MSK ) автор топика
Ответ на: комментарий от asid 10.03.13 12:50:50 MSK

Руками — алгоритм свой, и не думаю, что какая-то волшебная тулза что-то подберёт. В твоём случае (я надеюсь) доступен только 1 шифротекст с паролями. Основной способ атаковать шифротексты (с неизвестным исходным текстом) — частотный анализ.
//Посмотрел скрипт
Страшно слабенький скрипт, и вряд ли кто-то примет твой шифротекст за что-то серьёзное (потому как шифровать надо в бинарном виде и тогда файл будет хотя бы минимально похож на мусор). В данном случае спасает только то, что шифротекст только один. Впрочем, не сильно, поскольку исходное форматирование текста и переносы строк остаются и можно выделить зависимости.

Reinar
( 10.03.13 13:37:26 MSK )
Ответ на: комментарий от asid 10.03.13 13:01:43 MSK

Вот представь, есть какое-то число. Даже зная, что оно представляет из себя по какой-то логике измененные числовые значения букв (допустим, пароль только из букв), можно будет нарасшифровывать из этого числа дофига разных буквенных паролей.

KendovNorok ★
( 10.03.13 13:52:31 MSK )
Ответ на: комментарий от Reinar 10.03.13 13:37:26 MSK

плюсую, конечно в бинарном, а сейчас что в текстовом?
//Совсем не знаю perl

XoFfiCEr ★★☆☆
( 10.03.13 13:54:42 MSK )
Ответ на: комментарий от asid 10.03.13 12:26:23 MSK

Не хотите изучить модули Encode, Path::Class, прагму encoding? Дублирование кода — плохо.

AITap ★★★★★
( 10.03.13 14:01:16 MSK )
Ответ на: комментарий от XoFfiCEr 10.03.13 13:54:42 MSK

А сейчас там в текстовом виде ascii-коды символов (ну ладно, ascii-код -1) разделённые пробелами.
//Да я тоже

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *