- Автор темы
- #1
Вообщем сабж.
кто хорошо разбирается в Perl помогите плиз
Вообщем этот скрипт кодирует все файлы находящиеся в директории files и записывает в файл my.bin
Его можно раскодировать только если знаешь key
Вообщем вопрос такой. Можно как-то подобрать этот key? Помогите плиз, надо очень один файлик раскриптовать. Спасибо
Код:
кто хорошо разбирается в Perl помогите плиз
Вообщем этот скрипт кодирует все файлы находящиеся в директории files и записывает в файл my.bin
Его можно раскодировать только если знаешь key
Вообщем вопрос такой. Можно как-то подобрать этот key? Помогите плиз, надо очень один файлик раскриптовать. Спасибо
Код:
Код:
#!/usr/bin/perl
sub Encode{
$m=0;
while (substr($ekey,$m*6,6) ne "") {
$eo=int(substr($ekey,$m*6,3));
$ea=int(substr($ekey,$m*6+3,3));
&EncodePass;
$m++;
}
}
sub EncodePass {
$o=$eo;
$ninput=length($data);
for ($i=0;$i<=$ninput-$o-1;$i++) {
$char1=substr($data,$i,1);
$char2=substr($data,$i+$o,1);
$nchar=ord($char2);
if ($ea>255){$ea=0;}
$nchar=$nchar+$ea;
if ($nchar>255){$nchar=$nchar-256;}
$char2=chr($nchar);
$ea++;
substr($data,$i,1)=$char2;
substr($data,$i+$o,1)=$char1;
$o++;
}
$o--;
$ea--;
$keyn=sprintf("%.3u"."%.3u"."%.6u"."%.6u",$eo,$ea,$i,$o);
$key="$keyn"."$key";
}
sub EncodeBin {
chomp(@files=`ls files`);
foreach $file(@files) {
$infile=`cat files/$file`;
$data="$data$infile"."\n<--SPLIT HERE-->\n";
}
&Encode;
open (ENCODED,">my.bin");
print ENCODED "$data";
close (ENCODED);
}
sub Decode {
$e=`type my.bin`;
$m=0;
while (substr($key,$m*18,18) ne "") {
$b=substr($key,$m*18,3);
$a=substr($key,$m*18+3,3);
$i=substr($key,$m*18+6,6);
$d=substr($key,$m*18+12,6);
&D;
$m++;
}
(@file) = split /<--SPLIT HERE-->\n/,$e;
open (TXT,">c.c");
print TXT "$file[0]";
close (TXT);
}
sub D {
for ($j=$d;$j>=$b;$j--) {
$i--;
$g=substr($e,$i+$j,1);
$f=ord(substr($e,$i,1))-$a;
if ($f<0){$f=$f+256;}
substr($e,$i,1)=$g;
substr($e,$i+$j,1)=chr($f);
$a--;
if ($a<0){$a=255;}
}
}
print "Enter ekey (example: 001211): ";
chomp($ekey=<STDIN>);
print "Encode key $ekey \n";
&EncodeBin;
print "Decode key $key \n";
&Decode;