-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkani.pl
69 lines (67 loc) · 2.84 KB
/
kani.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
;#遥かに仰ぎ、麗しの
;#似非バイナリダンプスクリプト 20071122
opendir (DIR,"./rio") or die;
@file0 = readdir(DIR);
closedir(DIR);
@file = grep( /wsc/i, @file0);
mkdir rio_out;
foreach $file (@file){
open (IN, "./rio/$file") or die;
open (OUT, ">./rio_out/$file.txt");
binmode IN;
binmode OUT;
undef $/;
$line = <IN>;
$char1 ="";
$bin = unpack("H*",$line);
$cha = length($bin)/2;
for ($i = 0; $i < $cha; $i++){
$two = hex(substr($bin,$i*2,2));
$two2 = ( $two % 4 ) * 64 + int($two / 4) ;
$two3 = sprintf("%x",$two2);
if ( length($two3) == 1 ){
$two3 = "0$two3";
}
$char1 .= "%"."$two3";
}
@decode = split( /:/,&plast($char1));
foreach $decode(@decode){
;#$decode =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
print OUT "\x0D\x0A$decode";
}
close(IN);
close(OUT);
}
sub plast{
$_[0] =~ s/(%00%21(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%0a)/%00:$1/gi;
$_[0] =~ s/(%00%22(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%23(?=%00%ff%ff))/%00:$1/gi;
$_[0] =~ s/(%00%25(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%26(?:%[0-9A-Fa-f][0-9A-Fa-f]){1}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%29(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%30(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%41(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%42(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%46(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%48(?:%[0-9A-Fa-f][0-9A-Fa-f]){5}(?:%00){5})/%00:$1/gi;
$_[0] =~ s/(%00%49(?:%[0-9A-Fa-f][0-9A-Fa-f]){1}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%4a(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%4b(?:%[0-9A-Fa-f][0-9A-Fa-f]){7}%00(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%4c(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%4d%01)/%00:$1/gi;
$_[0] =~ s/(%00%54%45%46)/%00:$1/gi;
$_[0] =~ s/(%00%55%00)/%00:$1/gi;
$_[0] =~ s/(%00%71%66%61)/%00:$1/gi;
$_[0] =~ s/(%00%b8%[0-9A-Fa-f][0-9A-Fa-f]%00(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%01%03(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%03%01(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%01%04(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%00(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%01%06(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%00%[0-9A-Fa-f][0-9A-Fa-f](?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%01%01(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%00%[0-9A-Fa-f][0-9A-Fa-f](?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%01%11(?:%[0-9A-Fa-f][0-9A-Fa-f]){3}%00%[0-9A-Fa-f][0-9A-Fa-f](?=%00))/%00:$1/gi;
$_[0] =~ s/(?<!%21%00%00|...%00%48)(%00%07(?:%[0-9A-Fa-f][0-9A-Fa-f]){5,9}(?=%00))/%00:$1%00/gi;
$_[0] =~ s/(%00%02%02(?=%00))/%00:$1/gi;
$_[0] =~ s/(%00%73(?:%[0-9A-Fa-f][0-9A-Fa-f]){4}(?:%00){5})/%00:$1/gi;
$_[0] =~ s/(%00%74(?:%[0-9A-Fa-f][0-9A-Fa-f]){1}(?=%00))/%00:$1/gi;
return $_[0];
}