私はジップパスワードを忘れたため開けないファイルです。パスワードの一部は覚えているのですが、追加したバリエーションを思い出せません。試してみましたがクラックジップしかし、パスワードの一部を知っていることを示す方法がわかりません。要約すると、
- パスワードの一部は知っています。例:こんにちは"、"世界" そして "クソ野郎「」。
- これらのパーツは任意の順序で配置でき、すべてが使用されるわけではありません。
- 3 ~ 5 個の小文字など、追加の小さな部分が表示される場合があります。
それができるソフトウェアをご存知ですか?
答え1
方法の概要:
次のようなユーティリティを使用する
crunch
カスタム辞書ファイルを作成します。fcrackzip
そのカスタム辞書を使用して実行します。
問題点:
最大 3 つの文字列と 3 ~ 5 個の小文字を混ぜると、1 兆個以上のパスワードが作成されます。この辞書を生成するだけでも、しばらく時間がかかります。
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
問題セットが小さいテストケース (1 つまたは 2 つの文字列、および最大 2 つの小文字、任意の順序)。
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