у меня естьпочтовый индексфайл, который я не могу открыть, так как забыл пароль. Я почти уверен в некоторых частях этого пароля, но не могу вспомнить вариации, которые я к нему добавил. Я пыталсяfcrackzipно я не вижу, как обозначить, что я знаю части пароля. Подведем итог:
- Я знаю некоторые части пароля, например "привет", "мир" и "shittypass".
- Эти части могут располагаться в любом порядке, и не все из них могут быть использованы.
- Могут появиться дополнительные мелкие детали, например, от 3 до 5 строчных букв.
Знаете ли вы какое-либо программное обеспечение, которое может это сделать?
решение1
Краткое описание метода:
Используйте утилиту типа
crunch
для создания пользовательского файла словаря.Запустите
fcrackzip
с этим пользовательским словарем.
Проблемы:
До 3 строк, смешанных с 3-5 строчными буквами, дают свыше триллиона возможных паролей. Только генерация этого словаря займет некоторое время.
crunch
позволяет использовать подстановочные знаки на основе символов, но его обработка пользовательских строк не столь гибка. Чтобы решить эту Q,grep
также,sed
поsort
-видимому, необходимы , и , любой из которых увеличивает необходимое время, т. е. часы, может быть, дни...
Вероятно, сработает что-то вроде этого:
crunch 3 9 abcdefghijklmnopqrstuvwxyz123 | \
grep '[123]' | # at least one number per dict entry
egrep -v '([123]).*\1' | # remove repeated numbers
sed 's/1/hello/;s/2/world/;s/3/shittypass/' | # replace numbers with strings
sort -u | \
fcrackzip -D -p /dev/stdin foo.zip
Тестовый пример с меньшим набором задач (одна или две строки и до двух строчных букв в любом порядке):
echo foo > bar.txt # file to archive
zip -P xhellobworld baz bar.txt # archive with password
time crunch 2 4 abcdefghijklmnopqrstuvwxyz12 | \
grep '[12]' | egrep -v '([12]).*\1' | \
sed 's/1/hello/;s/2/world/' | \
sort -n | fcrackzip -u -D -p /dev/stdin baz.zip
Выход:
Crunch will now generate the following amount of data: 3163440 bytes
3 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 637392
PASSWORD FOUND!!!!: pw == xhellobworld
real 0m5.942s
user 0m2.240s
sys 0m1.040s