Автор: Kuzia_DSL
Совместимость: Windows 98 — XP x86
Автор: Kuzia_DSL
Совместимость: Windows 98 — XP x86
Разбирая старые архивы на сервере нашел прикольную карточную мультиигру.
— Албанский дурак
— Армянский дурак
— Безкозырный дурак
— Большой дурак
— Верю не верю
— Двухкозырной дурак
— Дорожный дурак
— Занудный дурак
— Козырной дурак
— Королевский дурак
— Круговой дурак
— Магаданский дурак
— Наваленный дурак
— Невидимый дурак
— Оборотный дурак
— Отбойный дурак
— Очковый дурак
— Переводной дурак
— Переводной дурак 2
— Погонный дурак
— Подкидной дурак
— Покерный дурак
— Простой дурак
— Пустой дурак
— Трешка
— Чешский дурак
— Чукотский дурак
— Японский дурак
— Безик
— Бура
— Восьмерки
— Девятка
— Деберц
— Домино
— Кинг
— Лото
— Марьяж
— Осел
— Очко
— Пикет
— Покер
— Полиньяк
— Пропущенка
— Пьяница
— Сапер
— Терц
— Тузату
— Ураган
— Червы
— 31
— Пирамидка
— Дюжина
— Ближайшая судьба
— Чатарунга
— Множественные параметры настроек, количество, стиль и интеллект игроков
— Возможность играть с реальными игроками по сети.
— Лекарство (есть в комплекте, 00.REG+любой код для регистрации)
— Лицензия: SHAREWARE, но автор исчез, так что удовольствия никто не испортит.
Возможно, слетели настройки BIOS (вернулись к дефолтным), обычно тогда при загрузке сразу выбрасывает в BIOS, если не выбрасывает, а появляется синий экран, на котором ругаются на ACPI: «The BIOS in this system is not fully ACPI compilant», и, возможно ошибка с кодом STOP:000000A5
то в BIOS надо зайти и проверить:
1. Security --> Secure boot menu --> Secure boot
установить в Disable
, сохранить (F10), перезагрузиться, войти в BIOS опять.
2. Boot --> Launch CSM
выставить в Enabled
. Cохранить (F10), перезагрузиться, войти в BIOS опять.
3. Advancend --> OS Selection
выставить в Windows 7
. Cохранить (F10), перезагрузиться.
Пример синего экрана:
1. Shred для Windows (копия)
2. Устранил финальный недостаток SHRED под Windows в BAT-файле (копия)
3. Random Renamer (копия)
В [2] описал недостаток утилиты shred
, а именно: затирая файл она никак не меняет его имени, потому, если вы shred‘ом удалили файл, например, с именем Путин бомба взрыв чеченцы.doc
, содержимое файла затрется, а название останется.
Впрочем, там же описал недостаток и получения случайного имени файла стандартными средствами BAT/CMD: Имя временного файла весьма характерное, при анализе диска будет видно, что кто-то скриптом пользовался. Как сделать нормальные случайные имена файлов в CMD (вида lfcx16.tmp
, например) без внешних утилит, я пока не понял.
Впрочем, да, без PowerShell или JS/VBS стандартными средствами CMD/BAT получить нормальное случайное имя файла сложно, так что написал простенькую утилиту Random Renamer [3], которую, впрочем, писал немного для другого, но в [3] обещал пример, как ее можно использовать со shred
в BAT-файле.
1. Отключаем режим вывода команд:
@echo off
2. Проверяем, чтобы в первом параметре BAT-файла были указаны маска или имя файла, иначе насерет в консоль ошибками и будет некрасиво:
IF "%1" EQU "" goto paramerr
3. В конце BAT-файла дописываем метку :paramerr
и вывод сообщения об ошибке:
:paramerr
echo First parameter must be file name or file mask!
echo e.g. rrshred.bat *.txt
echo e.g. rrshred.bat text.txt
4. Генерируем имя для списка файлов, которые будут переименованы и обработаны shred
:
set RLST=%TEMP%\%RANDOM%.%RANDOM%
5. Переименовываем файлы в текущем каталоге Random Renamer’ом и отправляем вывод RR в список файлов:
rr -m %1 -v >%RLST%
где:
-m %1
— задание маски переименуемых файлов
-v
— включить вывод процесса переименования
Вывод производится на STDOUT
, потому перенаправляем его во временный файл (>%RLST%
).
Пример содержимого файла (X:\Temp\15158.18655
):
Rename files...
Z:\Test1.txt --> 1.txt --> tuz3v4t3.ovw OK.
Z:\Test2.txt --> 2.txt --> npk5b7jn.q12 OK.
Z:\Test3.txt --> 3.txt --> sqtn63cl.dwa OK.
Z:\Test4.txt --> 4.txt --> m371e448.q12 OK.
Found files: 4
Renamed files: 4
Error files: 0
6. В цикле вытаскиваем имена переименованных файлов из файла-списка:
FOR /F "tokens=5,5 delims= " %%i in (%RLST%) do ( [внутри цикла] )
Справка по команде FOR BAT-файла (копия в PDF)
Внутри цикла:
1. Вызываем shred
для каждого файла из списка:
shred -n 3 -z %%i
где:
-n 3
— затереть случайными данными файл в 3 прохода
-z
— сделать дополнительный проход, затерев содержимое файла нолями (символом с кодом 0x00h
)
2. Удаляем файл:
del %%i
После цикла затираем и удаляем сам файл со списком файлов, имя которого в %RLST%
:
shred -n 3 -z %RLST%
del %RLST%
exit /b
Команда exit /b
завершает работу BAT-файла, параметр /b
указывает, чтобы по выходу из BAT-файла, командный процессор не был бы закрыт.
Ниже в BAT-файле будет идти метка :paramerr
@echo off IF "%1" EQU "" goto paramerr SET RLST=%TEMP%\%RANDOM%.%RANDOM% rr -m %1 -v >%RLST% FOR /F "tokens=5,5 delims= " %%i in (%RLST%) do ( shred -n 3 -z %%i del %%i ) ::remove list of files shred -n 3 -z %RLST% del %RLST% exit /b :paramerr echo First parameter must be file name or file mask! echo e.g. rrshred.bat *.txt echo e.g. rrshred.bat text.txt
%PATH%
, например, C:\Windows
.rrshred.bat *.txt
— затрет и удалит файлы *.txt
в текущем каталоге.
Блин, в Windows выше XP старая утилита Хваталка перестала работать, пришлось искать что-то более новое. Нашел. Называется Quick HTML Color Picker
Процесс захвата цвета
Да, кусочек рубашки Сергея Минаева 🙂
Захватывать цвет можно и с видео, при нажатии кнопки захвата, программа просто тормозит экран, а по клику снова его отпускает.
Для начала захвата цвета надо нажать кнопку Pick Color. Если стоит галочка copy automatically, то в буфер обмена скопируется HTML-код цвета, например, #808080
.
Совместимость: Windows 7 — Windows 11
Скачать с Mega.NZ
Официальный сайт
Уже поднимал этот вопрос здесь (копия), в общем, нативного решения не нашел, написал простенькую утилиту Random Renamer.
Random renamer (rr), this program rename files to random names
v 0.0.1b (L) ChaosSoftware 2023.
Использование: rr.exe [параметры] | -h
-h
— помощь
-m <mask>
— Маска файлов для переименования. Параметр обязательный.
Или используйте параметр -r
для переименования только каталогов.
[-a] <номер>
— задать алфавит для генерации случайного имени, значение по умолчанию 0
[-d]
— стартовая директория, по умолчанию — текущая
[-l] <число>
— длина имени, по умолчанию 8
[-r]
— переименовывать директории
[-s]
— включая подкаталоги
[-v]
— отображать процесс на экране
[-x] <число>
— длина расширения, по умолчанию 3
, каталогам расширение не присваивается.
Алфавиты:
0: abcdefghijklmnopqrstuvwxyz0123456789
1: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
2: ABCDEF0123456789
3: abcdef0123456789
4: 0123456789
5: abcdefghijklmnopqrstuvwxyz
6: ABCDEFGHIJKLMNOPQRSTUVWXYZ
По умолчанию: 0
Положить бинарник в один из каталогов %PATH%
, например, в C:\Windows
и пользоваться.
Потом сделаю пример, как его со shred
‘ом в BAT/CMD использовать.
Деревня укрылась от Майкрософт
Туда совершенно случайно попал
Один покупатель старинных виндов,
Он их для Билл Гейтса повсюду искал,
Не мог он не удивиться
Хозяйке старого ноутбукА,
Красивая с виду девица
Откуда в этой глуши она?
А? А? А?
Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
Девица не спускала с них свой очень странный взгляд,
Они давно висят!
Но нет, неподкупна хозяйка была,
Винды отказалась она продавать,
И на ночь оставила гостя она
Свою предложила мужчине кровать.
Но только она заснула,
Тихонько дверь притворив за собой
В гостиную прошмыгнула
Фигура гостя во тьме ночной.
Ой, ой, ой
Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
И гость не отрывал от них свой сисадминский взгляд,
Они давно висят!
Не сразу в винде неисправность нашел,
Лишь только компьютер перезагрузил,
Обратно он в спальню хозяйки пошёл,
Мол, древнюю вещь ото сна пробудил
В ответ она захрипела
Был дикий ужас в её глазах
Винды грузились — она старела,
Пока не превратилась в прах!
Ах, ах, ах!
Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
Девица не спускала с них свой очень странный взгляд,
Они давно висят!
Понадобилось, нашел вот. Пост от склероза и для бэкапа.
Задача, которую мне поставил клиент, была такая — преобразовать бинарный файл в текст, который можно распечатать и переслать по почте. Чтоб его можно было сканером распознать, и обратно в бинарный файл преобразовать. Ну очень плохо ходят флэшки, и тем более, криптостойкие донглы промеж границ из-за Хуйла, сами понимаете.
Пример тестового бинарного файла (в Linux):
В Windows:
Понятно, что напечатать это нельзя, для распечатки надо преобразовать бинарный RAW-формат в что-то удобопечатоемое, например в строки, содержащие шестнадцатеричные цифры:
EA 38 B6 C1 18 1A 4F B3 5F 81 B7 A4 1B 50 89 18 B3 0B 24 27 36 59 57 D0 3A 78 1C 3E D6 F2 27 01 13 4B 54 65 6E 44 61 23 7D D4 ED 60 CE 8E C1 A2 58 45 BB 35 84 A7 69 28 D4 09 5F 99 F5 27 CA 30
В Linux есть сразу несколько инструментов, позволяющих выполнить дамп файла в набор шестнадцатеричных значений, причем «из коробки». Не зря же эта ОС изначально писалась программистами для программистов.
Кратко ознакомиться с этими инструментами можно здесь:
Convert Binary Data to Hexadecimal (оригинал статьи на буржуйском)
Преобразование двоичных данных в шестнадцатеричный формат (Перевод на русский, PDF)
Я воспользовался утилитой hexdump
, и написал небольшой скрипт, который при вызове его с параметром, содержащим путь к файлу, создает в каталоге с оригинальным файлом файл имя_оригинального_файла.dump
, который содержит шестнадцатеричное представление исходного файла:
dumpfile <имя_файла>
Основной алгоритм укладывается в одну строку:
cat $1|hexdump -e '27/1 "%02X " "\n"' >$1.dump
1. Читаем файл, переданный на вход скрипта командой cat
.
2. Передаем в pipe (|
) данные hexdump
‘у
3. Скидываем вывод (>
) в файл $1.dump
В винде, как обычно — в таких случаях все через жопу, слава Ктулху, нашлись умные люди, которые все сделали за меня на BAT/CMD и доступном в системе JScript.
Совместимость — начиная с Windows XP
HEXDUMP [/Опция [Значение]]...
Записывает содержимое стандартного ввода в шестнадцатеричном виде в стандартный вывод, по 16 байт на строку, используя следующий формат:
ООООООО ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ААААААААААААААААА
где:
0000000
= шестнадцатеричное смещение в пределах файла
XX
= шестнадцатеричное значение байта
AAAAAAAAAAAAAAAA
= байты в формате ASCII (управляющие коды и не-ASCII в виде .
[символ точка])
Вывод кодируется как ASCII, каждая строка завершается символом CarriageReturn — перевод строки.
Поведение можно изменить, добавив любую комбинацию следующих параметров:
— /I InFile
— ввод из InFile
вместо стандартного ввода
— /O OutFile
— вывод в OutFile
вместо stdout: — перезаписывает InFile
— /NA
— отключить вывод ASCII-символов.
— /NO
— отключить вывод смещений
— /R
— Необработанный шестнадцатеричный код в одной строке без пробелов между байтами.
— /LF
— LineFeed как признак конца строки (UNIX-формат) вместо CarriageReturn LineFeed (по умолчанию, формат Windows)
— /NL
— без разделителей строк, весь вывод в одной строке без разделителей строк
— /U
— вывод в кодировке Unicode с BOM (UTF-16)
— /V
— Вывести информацию о версии
— /?
— Вывести эту справку
HEXDUMP.BAT
версии 2.1
был написан Дэйвом Бенхамом.
и поддерживается на https://www.dostips.com/forum/viewtopic.php?f=3&t=8816
Вывод в файл (пример):
hex_dump.bat /I test.temp /O test.temp.dump /NA /NO
Вывод на консоль:
hex_dump.bat /I test.temp /NA /NO
Пример вывода на консоль:
60 ab 2b b8 4a 3f 0d 91 a0 a4 09 f0 8f 4b 51 95 3a 22 1b 0e 5b 6d d0 3f 80 96 c5 22 98 dc 4a 2b 89 38 52 96 42 c0 ab 04 c4 8e b8 87 dd 7c 4a b2 e1 6a b1 c2 30 66 82 54 21 5a 40 a2 bb f8 19 89
Внезапно, есть.
Это команда type
.
Использование:
type <путь_и_имя_файла>
Формат командной строки:
TYPE [диск:][путь]имя_файла
Примеры: type /?
— отобразить подсказку по использованию.
type mytextfile.txt
— вывести на экран содержимое текстового файла mytextfile.txt
текущего каталога.
type mytextfile.txt | more
— вывести на экран содержимое текстового файла mytextfile.txt
в постраничном режиме.
type mytextfile.txt > D:\newfile.txt
— перенаправление вывода команды type
в файл, т.е. копирование текстового файла mytextfile.txt
в текстовый файл D:\newfile.txt
.
type bigfile.iso > nul
— вывод файла на фиктивное устройство nul
, что эквивалентно просто чтению заданного файла.
При выводе на экран нетекстовых файлов, байты, содержимое которых представлено неотображаемой частью таблицы ASCII (0x00 – 0x1F
) интерпретируется как служебные символы, что выражается в непредсказуемом перемещении курсора, выводе звука, очистке окна и т.п.
Совместимость: DOS 6.x и выше.
Понадобилось в одном из офисов массово обновить винды.
1. Теперь пакет с сайта не скачать с российских IP.
2. Не установится, если обнаружит российский IP при запуске, надо физически отключать интернеты, выдернув сетевой кабель из компа.
Понятно, в связи с чем.
На форумах (дурацких) люди (дурацкие) говорят, что последний пакет обновлений грохает русскую винду, даже если предыдущие и следующие условия соблюдены. Все работает, проблем не возникло, проверено 15 раз.
Как ответить на вопросы правильно, думаю, догадаетесь сами.
И да, минутку надо подождать, после появления второго окна (на совсем медленных ведрах лучше две).
Скачать обновление (последняя версия)
Последняя довоенная версия (копия), если кому надо для успокоения души. Ключик спрашивать лично в Телеграме, вате не дам.
Про shred в версии под винды, рассказывал здесь (копия)
И рассказал там про фатальный недостаток утилиты, затирая и удаляя файл она никак не меняет его имени, потому, если вы shred
‘ом удалили файл, например, с именем Путин бомба взрыв чеченцы.doc
, содержимое файла затрется, а название останется. Сделал обертку в виде BAT-файла, чтобы сей недостаток устранить:
Самый простой способ, это просто использовать переменную %RANDOM%
, например, в таком виде:
%TEMP%\%RANDOM%.%RANDOM%
Вариант сгенерированного имени:
C:\Windows\Temp\20422.19028
1. Генерируем имя для списка файлов, обработанных shred
:
set RLST=%TEMP%\%RANDOM%.%RANDOM%
По-хорошему надо бы проверить, существует ли такой файл, если существует, сгенерировать новое имя, но тут это единственное имя файла, которое может попасть на существующий файл — в общем, я забил на это.
2. Вызываем shred
:
shred -n 3 -z -v %1 2>%RLST%
где:
-n 3
— количество проходов для затирания содержимого файла
-z
— дополнительный проход, содержимое файла затирается нолями (символом с кодом 0)
-v
— режим подробного вывода на консоль, он пойдет в файл, там будут имена затертых файлов, они понадобятся далее.
2>
shred
выводит данные на STDERR
— перенаправляем вывод в файл, чье имя содержится в переменной %RLST%
.
Содержимое файла из переменной %RLST%
:
>rshred.bat *.txt
shred: 1.txt: pass 1/4 (random)...
shred: 1.txt: pass 2/4 (random)...
shred: 1.txt: pass 3/4 (random)...
shred: 1.txt: pass 4/4 (000000)...
shred: 2.txt: pass 1/4 (random)...
shred: 2.txt: pass 2/4 (random)...
shred: 2.txt: pass 3/4 (random)...
shred: 2.txt: pass 4/4 (000000)...
shred: 3.txt: pass 1/4 (random)...
shred: 3.txt: pass 2/4 (random)...
shred: 3.txt: pass 3/4 (random)...
shred: 3.txt: pass 4/4 (000000)...
shred: readme.txt: pass 1/4 (random)...
shred: readme.txt: pass 2/4 (random)...
shred: readme.txt: pass 3/4 (random)...
shred: readme.txt: pass 4/4 (000000)...
В цикле вытаскиваем из временного файла (%RLIST%
):
FOR /F "tokens=2,5 delims=: " %%i in (%RLST%) do ( [в цикле] )
Справка по команде FOR
BAT-файла (копия в PDF)
3. В выводе имя файла повторяется несколько раз, потому будем искать строчку, где файл упоминается последний раз ((000000)
):
IF "%%j" EQU "(000000)..." ( [ниже код после проверки] )
4. Получаем временное имя файла:
set TMPNAME=%RANDOM%.%RANDOM%
5. Переименовываем обработанный файл в случайное имя, полученное выше:
ren %%i !TMPNAME!
6. Удаляем переименованный файл:
del !TMPNAME!
7. После цикла отключаем установку локальных параметров:
Setlocal DisableDelayedExpansion
Справка по команде (копия в PDF)
8. Затираем и удаляем сам файл с логом из %RLST%
:
::remove list of files
shred -n 3 -z %RLST%
del %RLST%
Минус скрипта, который даже плюс:
У группы удаляемых файлов в цикле будет одно и то же имя файла, из-за хреновой работы %RANDOM%
в CMD (копия), но почему это минус, который плюс — при анализе диска не будет видно, сколько именно файлов было удалено (проверено в WinHex).
Минус скрипта, который минус:
Имя временного файла весьма характерное, при анализе диска будет видно, что кто-то скриптом пользовался. Как сделать нормальные случайные имена файлов в CMD (вида lfcx16.tmp
, например) без внешних утилит, я пока не понял, опять же, из-за косячного %RANDOM%
в винде.
Продолжение. Начало здесь (копия)
Распишу алгоритм, реализованный в функции:
1. Устанавливаем режимы работы:
SetLocal EnableExtensions EnableDelayedExpansion
Справка по команде Копия в PDF
2. Устанавливаем начальные переменные в функции:
Set Out=%~0
Записываем в локальную переменную имя функции (%~0
). Зачем? А спросите у дизайнеров языка CMD, он ебанутый, и без этой фишки вывод данных из функции не сработает.
Set "param=%~1"
Записываем первый и единственный параметр переданный функции (%~1
), т.е. строку, в локальную переменную param
.
Set "str=A!param!"
Добавляем символ A
к строке param
с начала строки, сохраняем результат в локальную переменную str
. На самом деле, можно добавить любой печатный латинский символ. Пусть будет A
.
Set "len=0"
Счетчик длины устанавливаем в ноль.
3. Запускаем основной цикл:
for /l %%a in (30,-1,0) do ( [см. далее] )
Второй параметр цикла (-1
) означает, что цикл пойдет в обратном порядке, от 30
до 0
.
4. Внутри цикла:
4.1. set /a "len|=1<<%%a"
Производится битовый сдвиг переменной цикла (%%a
), т.е. к единице (двоичной) добавляется %%a
нолей (двоичных).
4.2. Над полученным числом производится операция побитового ИЛИ (|
), результат записывается в переменную len
.
4.3. Запускается второй (внутренний) цикл, количество итераций которого проводится по полученной ранее длине (len
):
for %%b in (!len!) do [...]
4.3.1. if "!str:~%%b,1!"==""
Внутри второго цикла, если мы нашли пустой символ на позиции, которую указывает счетчик (%%b
), проводим битовые операции над длиной:
4.3.2. set /a "len&=~1<<%%a"
4.3.2.1. Сначала проводится битовый сдвиг с единицей на %%a
разрядов (нолей)
4.3.2.2. Полученные биты инвертируются (~
) т.е., например, если полученное значение было равно 1000
(в двоичной системе счисления), то после операции ~
оно превращается в 0111
.
4.3.2.3. Последней производится операция побитового И (&
) и значение присваивается переменной len
.
5. Функция возвращает результат:
endlocal & set %Out:~1%=%len%
Функция целиком:
::Start Strlen function :Strlen SetLocal EnableExtensions EnableDelayedExpansion Set Out=%~0 Set "param=%~1" Set "str=A!param!" echo %str% Set "len=0" for /l %%a in (30,-1,0) do ( set /a "len|=1<<%%a" for %%b in (!len!) do if "!str:~%%b,1!"=="" set /a "len&=~1<<%%a" ) endlocal & set %Out:~1%=%len% exit /b 0
Сделал разбор алгоритма по шагам, при меньшем числе итераций (установил в основном цикле первый параметр равным 4
и строку для измерения длины сделал 10 символов — 0123456789
). Все свел в таблицу:
Определение длины строки штатными средствами CMD/BAT тот еще геморрой, но понадобилось, потому расскажу про несколько способов. В этом выпуске самый простой.
Команда set
: экспериментально 1024 символа.
Общий размер переменной: 8191 символ.
Длина командной строки: 8191 символ.
Отсюда
Внимание! Совместимость алгоритмов от Windows XP и выше. Т.е. для DOS и Windows 9x не подойдет.
Есть медленное, но простое решение «в лоб»:
1. Задать циклу for
перебирать числа от 0
до какого-нибудь заведомо большого числа, например 9000
.
for /L %%a in (0,1,9000) do
[…]
2. Получать из строки символ под номером %%a
:
param:~%%a,1
В общем виде:
param:a,b
где:
param:
— взять из переменной param
символ(ы)
a
— позиция нужного символа
b
— количество символов
3. Сравнивать его с пустой строкой, и если строка не пуста (NEQ
):
if "!param:~%%a,1!" NEQ "" (
[…]
4. Прибавить счетчик символов в отдельной переменной:
Set /a "len+=1"
Иначе прервать цикл.
Можно реализовать это в виде функции BAT-файла:
:Strlen SetLocal EnableExtensions EnableDelayedExpansion Set Out=%~0 Set "param=%~1" Set "len=0" for /L %%a in (0,1,9000) do ( if "!param:~%%a,1!" NEQ "" ( Set /a "len+=1" ) else goto :_break ) :_break
Вывод на экран для строк:
Set "String1=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
Set "String2=132 sd72 362 232 83827 3n238237"
Set "String3=1 >>>32 lnsdfn lskd &&&&& _----__\\\\|||sd72 *&&&@@######~~~~~362 232 83827 3n238237"
Set "String4=A"
Set "String5=%%1"
Последняя строка задается в качестве параметра командной строки BAT-файла.
>strlenslow.bat 7894561230.
Length String 1 - [62]
Length String 2 - [31]
Length String 3 - [88]
Length String 4 - [1]
Length String 5 (Command Line Parameter) - [11]
Проблемы алгоритма:
1. Медленный
2. Если задать пустую строку в параметре командной строки — алгоритм ломается:
>strlenslow.bat
[...]
Length String 5 (Command Line Parameter) - [9001]
Хотя, последнее легко исправить.
А про более быстрый алгоритм поговорим в следующей серии.
— DES 100 — консольная утилита, реализующая алгоритм DES
— FC32 — алгоритмы перечислены на скриншоте
— FIGA201R — самописная шифровалка с самописным алгоритмом (криптостойкость не проверялась), описание формата файла и алгоритма в комплекте.
— WinCrypt — алгоритм LOKI
Мелкому другу срочно понадобилась программа, создающая графики по формулам, а Excel не подошел, бо до сих пор не умеет рисовать нормальные синусоиды, если задать интервал, например, от -10 до +10. Во всяком случае, препод сказал, что его графики из Excel не устраивают. А курсовая на носу у парня.
Слава Великим Древним и Ктулху лично, я компьютерный Плюшкин, и моего препода тоже не устраивали графики из Майкрософт Пуксель. Так что откопал такую вот программу.
+ Строить графики по формулам с нужным шагом и интервалом.
+ На одной координатной оси можно размещать несколько графиков
+ Импортировать результат в BMP/GIF
+ Дофига всякого-разного, что никогда не надо было, но вдруг кому-то понадобится (графики в полярных координатах, какие-то производные и прочий страшный матан). Мы электрики — нам красиво синусоиду нарисовать хватает (тьфу-тьфу-тьфу, как бы не сглазить).
Заходим в меню: Построение —> Добавить график
Попадаем в окошко построения:
Вбиваем формулу, выбираем основные параметры графика (цвет, толщина линии и т.д.).
Переключаемся на вкладку Доп. свойства:
Вбиваем диапазон и/или параметры построения (количество шагов, максимальный разрыв между значениями).
График можно отредактировать. Для этого нужно нажать F4 или перейти в меню Построение —> Список графиков:
Нужный график можно удалить, нажав по графику в окне Список графиков правой кнопкой мыши, и выбрав пункт Удал. из контекстного меню, либо отредактировать его (поменять формулу, цвет, прочие параметры) дважды кликнув мышью по соответствующей строке.
Программа сохраняет данные в своем собственном бинарном формате. Не расковыривал его.
Программа может экспортировать изображение в формат BMP или GIF, а поскольку, внутри программа таки растровая, размер экспортируемого изображения может быть любой. Пример:
Скачать оригинальный BMP (1024×768)
На картинке представлена демонстрация возможностей. Три графика:
+ sin(x)^2
— красный
+ -sin(x)^2
— фиолетовый
+ (sin (x^2)^2)*10
— серый
Windows 98 SE — Windows 10 (Windows 11 не подтверждена)
Бесплатно для граждан ГОРФ. Для активации бесплатности нужно в установщике выбрать русский язык и подтвердить дополнение к лицензии. Не ломал, ибо само работает.
Advancend Grapher 1.5 build 3 с MEGA.NZ (SFX ZIP Wrapper+Original Installer)
Блин, нашел у друга на компе старую шифровалку файлов (судя по внутренней справке, алгоритм Blowfish)
Уж не знаю, там че за криптостойкость, но за уникальность стоит эту утилиту забэкапить.
— Адекватно работает только на Windows 3.1-3.11
— Генерирует самораскрывающиеся (SFX) шифрованные архивы, которые запускаются в DOS.
— Формат выходного экзешника MZ (DOS), так что выше Windows ME его будет нельзя открыть без эмулятора.
Разбирая жесткий диск клиента, нашел старую игрушку в дурака. Фришная, подвенду, не Flash.
Совместимость — Windows 95+(Windows 3.11 с поддержкой EXE PE-формата) — Windows 11
Реально, вечный экзешник. Установки не требует.
Произведено неким Усковым Иваном в 1997 году.
Давно искал что-то подобное, чтоб не кодить самому, до этого пользовался Лехиным ХулиОрганайзером, который, кроме заметок имел в комплекте таймер и напоминатор о заданиях, почту проверить, например.
Последнее время искал что-то новое, поскольку БД с заданиями и заметками начала глючить, и тут, ВНЕЗАПНО, за меня это нашел paperdaemon@ljr:
Поиск простой и удобной оффлайн-программы для быстрых заметок, вместо той прежней самой ламповой и удобной, написанной в свое время одним программистом для своих нужд и презентованной мне еще в середине нулевых, но уже совершенно не работающей в Windows 10, запускаемой и скрываемой по одному нажатию кнопки, столкнул меня с целым множеством каких-то чудовищных и изощренных, платно-сервисных-по-подписке заново изобретенных сумрачными гениями программазма «велосипедов», что я уже практически отчаялся найти то, что мне нужно. И если бы не мое упорство, то я бы так и остался один на один с запускаемым по нажатию трёх клавиш одновременно ярлыком, ведущим на текстовый файл с заметками.
Итак, я все же нашел то, что мне прежде всего удобно, а значит и эффективно. К тому же, новая программа обладает ранее недоступными для предыдущего шедевра достоинствами, такими как сквозной поиск и создание древовидной структуры заметок. Бэкап по расписанию тоже весьма кстати. Программа бесплатна, но можно и задонатить авторам. Ибо они этого достойны
Программа и Windows 7 поддерживает, этот пост написал изначально в ней.
Официальный сайт
Копия (инсталлятор) на mega.nz
Копия (портабельная версия) на mega.nz
Что такое shred
? Это опенсорсный «уничтожитель» файлов, т.е. программа затирает (забивает случайными данными) файл на диске, чтобы невозможно было его восстановить средствами восстановления файлов, например, чтобы окончательно удалить конфиденциальные данные, доступ к которым может получить злоумышленник. shred входит во многие дистрибутивы Линукс, но есть версии и под другие ОС. Тут буду экспериментировать и описывать версию для windows.
Друзья попросили перевести на русский краткую справку, а заодно уж я поэкспериментировал с параметрами, чтобы подобрать оптимальные для повседневного использования.
Внимание! Идеальный уничтожитель данных, во всяком случае, с HDD-дисков, это молоток, с последующей обработкой диска в костре на березовых дровах, а всего оставшегося в микроволновке.
Использование: shred.exe [ОПЦИИ] ФАЙЛ1 [ФАЙЛ2 ФАЙЛ3 ...]
Многократное перезаписывание указанных ФАЙЛОВ, для затруднения восстановления данных даже очень дорогим аппаратным обеспечением.
Обязательные аргументы для длинных опций обязательны и для коротких опций.
-f, --force изменить разрешения файловой системы, чтобы разрешить запись, если это необходимо
-n, --iterations=N Перезаписать N раз вместо значения по умолчанию (25)
-s, --size=N затереть указанное количество байтов (допускаются такие суффиксы, как K, M, G)
-u, --remove обрезать и удалить файл после перезаписи
-v, --verbose показать прогресс
-x, --exact не округлять размеры файлов до следующего полного блока; это значение по умолчанию для нестандартных файлов (В Windows он все файлы округляет до полного блока, т.е. кластера на диске - Tolik)
-z, --zero добавить окончательную перезапись нулями, чтобы скрыть затирание файла
--help показать эту справку и выйти
--version вывести информацию о версии и выйти
Если в качестве файла указан -, затирается стандартный вывод.
Удалить ФАЙЛ(ы), если указан --remove (-u). По умолчанию не удалять
файлы, потому что обычно работают с файлами устройств, такими как /dev/hda, и эти файлы обычно не следует удалять. При работе с обычными файлами большинство людей используют параметр --remove. (Лучше так не делать, ниже обьясню почему)
ВНИМАНИЕ: обратите внимание, что shred основывается на очень важном допущении:
что файловая система перезаписывает данные на месте. Это традиционный способ работы, но многие современные файловые системы не удовлетворяют этому предположению.
Ниже приведены примеры файловых систем, в которых уничтожение файлов неэффективно:
* лог-структурированные или журналируемые файловые системы, такие как поставляемые с AIX и Solaris (а также JFS, ReiserFS, XFS, Ext3 и т. д.)
* файловые системы, которые записывают избыточные данные и продолжают работать даже в случае сбоя некоторых операций записи, например, файловые системы на основе RAID
* файловые системы, которые делают моментальные снимки, такие как NFS-сервер Network Appliance
* файловые системы, кэширующие во временных местах, такие как клиенты NFS версии 3
* сжатые файловые системы
Кроме того, резервные копии файловой системы и удаленные зеркала могут содержать копии файла, которые невозможно удалить, что позволит позже восстановить затертый файл.
Сообщайте об ошибках по адресу <bug-coreutils@gnu.org>.
Вместо ФАЙЛ можно использовать маску файлов, если вы хотите затереть группу файлов по маске, например, shred *.txt уничтожит все текстовые файлы в каталоге - Tolik
Разрешения файлов обрабатываются нормально, т.е., например, *.htm и *.html воспринимаются, как разные файлы.- Tolik
Внимание! Под рукой у меня нет лаборатории и оборудования разных там контор, тем более, проводил я их на скорую руку и довольно дилетантски, так что на абсолютную истину не претендую. Используйте все нижесказанное на свой страх, риск и хвост!
Условия:
— Windows 7 Professional x64
— SATA HDD Seagate, 500 GB
— FS: NTFS
— форк shred
(ниже дам ссылку)
Проверял работу затиралки WinHex’ом 19.9[https://www.x-ways.net/winhex/] x64, не самым свежим, но даже лицензионным (мне его кто-то подарил), на самом деле, следов мелких файлов я так и не обнаружил, так что сразу говорю, почти все тесты shred
прошел, и мне лень делать скрины с WinHex’а, а теперь о параметрах:
Внимание! Не советую использовать опцию -u
, т.е. удаление файла. shred
его просто удалит, не поменяв ему имя на случайное, как это делают многие «затиралки», потому, если вы затираете файл, например, с именем, путин бомба взрыв бомбас.doc
, то понятно кто хоть содержания файла и не увидит, но выводы сделает. Так что после shred
файл лучше обработать напильником, т.е. переименовать его случайным набором символов, или неслучайным, например, мой_кот.jpg
, а после этого удалять штатными средствами ОС.
Количество итераций:
т.е. опция -n <число> или --iterations=<число>
На ваше усмотрение, я не заметил разницы в WinHex’е между 3, которые выставил я, и 25 по умолчанию, но стоит ли лишний раз насиловать HDD или SSD перезаписями… Не знаю.
Дозапись файла:
опция -s <число> (--size=<число>)
Дозаписывает файл числом
байт (случайных). Если использовать после числа без пробела K
M
или G
, то, соответственно -кило -мега или -гига байт. На мой взгляд, это излишне, найдут у вас в директории C:\DOC
файл мой_кот.jpg
размером в 5Гб и удивятся. Но вообще можно, shred
с файловой системой обращается аккуратно и другие файлы не затрет.
Забить все нолями:
Опция -z
(--zero
)
На последней итерации затирания, shred
перезаписывает весь файл символом с кодом 0
.
На мой взгляд, довольно полезная опция, при использовании рекомендаций по переименованию файла и удалению, после затирания. «А хрен знает, товарищ майор, что это у меня за файл был с названием dfghuyty.13
в D:\DOC
, вирус, наверное.»
(Не)дописывать до кластера:
Опция -x
В Linux’овой версии shred
эта опция включает не дописывание до кластера, самое странное, что в Windows-версии наоборот, отключает.
Небольшое пояснение. В стандартных файловых системах файл занимает 1 кластер на диске. Т.е. файл, какого бы размера он не был, займет, как минимум 1 кластер. Размер кластера устанавливается настройками ОС, также его можно изменить при форматировании (иногда). Например, кластер в NTFS при стандартном форматировании равен 4Кб, т.е. 4096 байт, потому, даже если файл фактически занимает 4 байта, например, текстовый файл с содержимым 1234
, он все равно будет занимать 1 кластер. Если файл больше одного кластера, то автоматически он займет весь следующий, даже если в файле 4096+1 байт, и т.д.
Если (в Windows-версии shred
) применить опцию -x
к файлу 3.txt
, который содержит 4 байта (текст 1234
, например), то shred
и запишет 4 случайных байта.
Мое мнение: опцию -x
не использовать, пусть уж затирает кластер целиком.
Оптимальный вариант опций для мелких повседневных задач (затереть небольшой файл):
shred -n 3 -z <file_or_mask>
где <file_or_mask>
— файл или маска файлов.
Позже напишу батник, который будет затертые файлы рандомно переименовывать и удалять.