#!/usr/local/bin/perl # # gentrip.pl -- search for trip string which includes # your favorite substring. # # You can use perl-style regular expression # to specify pattern like: # [tT][aA][rR][oO] # ^Taro # Taro$ # # 「8桁目には.26AEIMQUYcgkoswの16種類しかでません。」らしい。 # $| = 1; # ",<,> は抜いた。 @char = (' ','!','#','$','%','&','\'','(',')','*','+',',','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','=','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[','\\',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','}','~'); print "Input string you want. (regexp is ok): "; $pattern = ; chop $pattern; print "Search string = $pattern\n"; print "Start searching.\n"; # 1文字 passwd foreach $char0 (@char) { $passwd = $char0; &maketrip; } print "Search 1 byte passwd end.\n"; # 2文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { $passwd = $char0.$char1; &maketrip; } } print "Search 2 bytes passwd end.\n"; # 3文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { foreach $char2 (@char) { $passwd = $char0.$char1.$char2; &maketrip; } } } print "Search 3 bytes passwd end.\n"; # 4文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { foreach $char2 (@char) { foreach $char3 (@char) { $passwd = $char0.$char1.$char2.$char3; &maketrip; } } } } print "Search 4 bytes passwd end.\n"; # 5文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { foreach $char2 (@char) { foreach $char3 (@char) { foreach $char4 (@char) { $passwd = $char0.$char1.$char2.$char3.$char4; &maketrip; } } } } } print "Search 5 bytes passwd end.\n"; # 6文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { foreach $char2 (@char) { foreach $char3 (@char) { foreach $char4 (@char) { foreach $char5 (@char) { $passwd = $char0.$char1.$char2.$char3.$char4.$char5; &maketrip; } } } } } } print "Search 6 bytes passwd end.\n"; # 7文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { foreach $char2 (@char) { foreach $char3 (@char) { foreach $char4 (@char) { foreach $char5 (@char) { foreach $char6 (@char) { $passwd = $char0.$char1.$char2.$char3.$char4.$char5.$char6; &maketrip; } } } } } } } print "Search 7 bytes passwd end.\n"; # 8文字 passwd foreach $char0 (@char) { foreach $char1 (@char) { foreach $char2 (@char) { foreach $char3 (@char) { foreach $char4 (@char) { foreach $char5 (@char) { foreach $char6 (@char) { foreach $char7 (@char) { $passwd = $char0.$char1.$char2.$char3.$char4.$char5.$char6.$char7; &maketrip; } } } } } } } } print "Search end.\n"; ### sub maketrip { # print "$passwd\n"; $salt = substr($passwd."H.", 1, 2); # print "salt = $salt\n"; $salt =~ s/[^\.-z]/\./go; $salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdeqf/; $trip = substr(crypt($passwd, $salt), -8); # print "trip = $trip\n\n"; if ($trip =~ /$pattern/) { print "Passwd = \#$passwd\n"; print "Trip = ◆$trip\n\n"; } }