./c0de/perl/tarants.txt

0.
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.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
#!/usr/bin/perl 
use Getopt::Std; 
 
my %argx; 
getopt("a:g:h",\%argx); 
sub help{ 
print qq{ 
[+] tarants 0.2b || C1c4Tr1Z 
 
[+] Uso: 	$0  [-gh] -a [archivo] 
[+] Opcionales: 
		-g out		guardar output pruba (C). 
		-h		ayuda. 
 
}; 
exit(0); 
} 
 
sub output{ 
my $out=shift(@_); 
my $gena=shift(@_); 
 
print "[+]Output: $out $/"; 
open(GOUT, "> $out") || die "[-]$! << EOF\n"; 
print GOUT "#include <stdio.h>\n"; 
gen($gena); 
print GOUT $retchar; 
print GOUT qq{int main(){ 
void (*shell)() = (void *)shellcode; 
shell(); 
exit(1); 
} 
/* 
generated by tarants v0.2b 
*/}; 
close(GOUT); 
print $retchar; 
print "[+] << EOF\n"; 
} 
 
sub gen($){ 
$narch=shift; 
$n=1; 
 
open(ARCHIVO,$narch) || die "[-]$! << EOF\n"; 
@chars=split(undef, <ARCHIVO>); 
close(ARCHIVO); 
$retchar="\nchar shellcode[]=\n\t\""; 
foreach $char(@chars){ 
	chomp($char); 
	$char=~s/([^*])/sprintf("\\x%02x", ord($1))/seg; 
	if($n!=15){ 
		$retchar.= $char; 
		$n++ 
	}else{ 
		$retchar.= $char."\"\n\t\""; 
		$n=1; 
	} 
} 
$retchar.= "\";\n\n"; 
return $retchar; 
} 
 
if($argx{g} && $argx{a}){ 
	if(!$argx{a}){ 
		print STDERR "[-]No se especifico el archivo.. << EOF\n"; 
		exit(0); 
	}else{ 
		output($argx{g},$argx{a}); 
	} 
} 
 
if($argx{a} && !$argx{g}){ 
	gen($argx{a}); 
	print $retchar; 
} 
if(!$argx{a} || $argx{h}){ 
	help(); 
} 

Back