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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28
211  Seguridad Informática / Hacking / Re: Jugando con netcat en: 28 Febrero 2008, 22:13 pm
DeoZamoX: No me refería a tu duda sino a los repetitivos "El antivirus detecta NetCat", o "No puedo cambiarle el icono al NetCat" y eso...

En tu caso te va a ser muy difícil hacer las cosas con ese router ahí... así que tendrías que hacerte con el control del mismo.
Los routers vienen con un password por defecto y la gente no los suele cambiar. Podés consultar una Base de Datos de passwords por defecto en los routers.

Otro nombre que te dejo es THC Hydra  ; )  (Googlea...)

Hackear un router es un paso más al de saltarse Firewalls (más si hablamos del de Windows), pero con algo de paciencia e info seguramente lograrás infiltrarte ahí y plantar un NetCat Troyanizado... y porqué no otras cositas ;) (nircmd, wget, iehv, messenpass) y aprovechar la conexión.

Suerte
212  Seguridad Informática / Hacking / Re: Jugando con netcat en: 26 Febrero 2008, 21:05 pm
Lo que necesitan es leer algo sobre firewalls y seguridad y entender como funciona netcat antes de meter comandos. ¿De qué serviría que logres la conexion si de todas formas no entendes qué hiciste?

A demás, una costumbre muy buena es "probar antes de preguntar"... eso hace cualquier hacker que se diga "curioso"... prueba. Dejenme ponerles un ejemplo simple:

Rigor Mortis pregunta:
-Cuando dice que se descomprime automaticamente en %homedrive%%homepath%\update   si no existe la carpeta update da error o windows crea una carpeta que se llame asi?

Simple... haces la prueba, que es lo que hara otro por vos si no sabe con certeza la respuesta. No estas probando un virus "Killer"... simplemente experimentas con una conexion, y en este caso, una instalación.

Respecto a No-IP sobran los manuales y tutos en internet (uno bueno: http://mundogeek.net/archivos/2005/09/28/no-ip/). En lo personal no necesite más que seguir las instrucciones de la instalacion y lo pude usar, y automatizar para que renueve mi IP. No es cosa de Gurús.

A demás, ante la pregunta ¿Que es un DNS y como funciona? ... (que seguramente surgirá) ... tenemos dos soluciones que seguramente les pareceran una novedad: Wikipedia y Google:¬¬
213  Programación / Scripting / Re: -=PERL=- en: 25 Febrero 2008, 17:27 pm
PERL I OverView y Bases

Perl es un lenguaje muy completo y resulta dificil describirlo. No establece ninguna filosofía de programación concreta. No se puede decir que sea
orientado a objetos, modular o estructurado aunque soporta directamente todos estos
paradigmas y su punto fuerte son las labores de procesamiento de textos y archivos.

Perl no es un lenguaje compilado ni tampoco interpretado, es un híbrido como Java aunque su comportamiento es totalmente diferente.
El código de Perl se compila a un código interno para guardarse en memoria, que se optimiza como si hicieramos un programa ejecutable, pero a diferencia de cualquier programa ejecutable independiente, el código interno de Perl no puede ser ejecutado directamente por el sistema operativo, sino que debe ejecutarse por un Motor, como si fuese interpretado. Así vemos que en realidad Perl es un híbrido.

VARIABLES:
Desde un punto de vista generalizado las variables son prácticamente cualquier estructura a la que se le pueden asignar datos, por eso definiremos como variable también a los arrays (matrices) y hashes (matrices asociadas), a demás de las comunes variables escalares (se llaman así porque no son vectoriales ;) )

Variables Escalares:
Son las variables que sólo contienen un valor, sea numérico o alfanumérico y se comienzan con "$", Las variables de contenido alfanumérico deben encerrarse entre comillas dobles ("") y como siempre en Perl, al terminar una sentencia se usa ";" (punto y coma).
Ejemplos:
Código
  1. #Alfanumericas
  2. $Variable1="Hola";
  3. $Variable2="Mundo";
  4. print "$Variable1 $Variable2";
Código
  1. #Con decimales y notacion cientíafica =P
  2. $ConDecimales=1,2;
  3. $ConNotacion=2,3E4;
  4. $MAL="3,4";  #<- Esto no es un numero sino un alfanumerico
  5. $Hexadecimales=0x1A;
  6. $Octales=038;

Así también podemos hacer asignaciones entre variables, recordando que el operador asignacion significa SIEMPRE que el segundo valor reemplazará al primero, por ejemplo:

$VarB=$VarA;

El contenido de la variable VarB SE PERDERA y se reemplazará por el contenido de VarA. Eso viene desde las bases de los lenguajes de máquina y se repite en todos los lenguajes. Si lopensamos en función de posiciones en la memoria veremos que:

A=B

Significa que el contenido de la posicion B se asignará a la posicion A, borrando todo lo que exista allí. En Perl es algo diferente ya que podemos hacer asignaciones entre diversos tipos de variables, lo que significa que en memoria ésto se tratará de manera diferente ya que a bajo nivel no está permitido asignar una variable de un tipo a una de otro tipo (Programadores de Assembly o lenguajes como C me entenderán).

ASIGNAR E INTERPOLAR:
Podemos usar variables para crear otras variables interpoladas. Eso nos facilita procesar y mostrar la información de manera sencilla. Para hacerlo en C o C++ deberíamos usar algunas formas específicas, igual en lenguajes como pascal e incluso en lenguajes sencillos como javascript, debemos inteerpolar usando construcciones como:

Código
  1. var Nueva='Hola don '+Nombre+', esperamos disfrute su visita...\n';

Sin embargo en Perl es mucho más sencillo, veamos:

Código
  1. $Apellido="Perez";
  2. $Mensaje="Hola don $Apellido, esperamos disfrute su visita\n";

Así de sencillo.

ADICION Y CONCATENACION CRUZADA:
En Perl una variable alfanumérica puede actuar como numérica o viceversa. Al realizar operaciones de éste tipo debemos usar éstas formas con los operadores "+" y ".".

Código
  1. $NUMERO=2;
  2. $ALFANUM="3";
  3.  
  4. # Sumar numero más alfanumérica
  5. $SUMA=$NUMERO+$ALFANUM;  # Es Faaacil XD - $SUMA ahora vale 5
  6.  
  7. #Concatenar un número y una cadena
  8. $CONCAT=$NUMERO.$ALFANUM;  # Ahora $CONCAT vale "23"

Ésto nos permite obtener un valor desde una cadena (pe: Leyendo un fichero) y usarlo para operaciónes matemáticas, para después devolverlo a una cadena de salida xD.

Una operación más avanzada es la asignación múltiple de variables. Con este método podemos realizar varias asignaciónes juntas, evitando renglones que dificulten la lectura del código.
Pe: Ésta asignación...

Código
  1. $Var1=$NUMERO;
  2. $Var2=$ALFANUM;
  3. $Var3=$OTRA_VARIABLE;

Se puede hacer mucho más simple así:

Código
  1. ($Var1,$Var2,$Var3)=($NUMERO,$ALFANUM,$OTRA_VARIABLE);

Observen que se usan paréntesis () que no se ven muy bien con el resaltado, y los valores se separan con comas ",".

Variables de Matrices (Arreglos, Vectores, Arrays):
Éste tipo de variables es en realidad una matríz de variables. Para aquellos que no conozcan lo que son vectores o matrices, imagínenlas como listas en las que cada objeto listado es una variable.
Los Arrays () o matrices se definen usando el carácter "@" (arroba).
Veamos un ejemplo en el que definiremos una matríz de 3 valores.

Código
  1. @Animales=("Perro", "Gato", "Caballo");

Así accedemos a los valores por referencia, comenzando desde 0 (cero) y, en éste caso, hasta 2 (dos). Vamos a mostrar la lista por la pantalla.

Código
  1. @Animales=("Perro", "Gato", "Caballo");
  2. print "Primer valor - $Animales[0]\n";
  3. print "Segundo valor - $Animales[1]\n";
  4. print "Ultimo valor - $Animales[2]\n";

Éste código puede ser muy mejorado si usamos un bucle, pero eso lo veremos más adelante.
Podemos introducir variables o matrices dentro de una matríz:

Código
  1. @Anim1=("Perro", "Gato", "Caballo");
  2. $OTRO="Ornitorrinco";
  3.  
  4. @Animales=(@Anim1,$OTRO,"Jirafa","La suegra");

Ahora veamos los métodos clásicos de operación de los Arrays, que son métodos que nos facilitan operar con los elementos de un array.

PUSH:
Sirve para colocar un elemento al final de la matríz, y se usa así:

push(@matriz, "Valor")

@matriz es la matríz en la que queremos introducir el "Valor". Éste valor puede ser un número, una variable escalar, u otra matríz.
Un Ejemplo:
Código
  1. @Matriz=("Uno", "Dos");
  2. @OtraMatriz=("Tres", "Cuatro");
  3. push(@Matriz, @OtraMatriz);

POP:
Quitar el último valor de la matríz. Aplicado a la matríz anterior quitaría el valor "Cuatro", y lo devuelve, por lo que lo podemos meter en otra variable. Veamos;
Código
  1. $ValorSacado=pop(@OtraMatriz);
  2. print "Saque el valor $ValorSacado\n";
Ahora quedan los valores "Uno" "Dos" y "Tres".

UNSHIFT:
Nos permite reemplazar el primer valor de una matriz, aplicado a la matriz anterior sería:
Código
  1. unshift(@Matriz, "Unito");
Cambiaría el "Uno" por "Unito".

SHIFT:
Quita el primer valor de la matriz, desplazando a los demás un lugar, por ejemplo:
Código
  1. shift(@Matriz);
Dejaría los valores a partir de "Dos" y sacaría el "Unito". Tal y como POP , éste método devuelve el valor sacado de manera que lo podamos usar.

Podemos conocer el último índice de un array usando una notación especial, el "$#". Por ejemplo si quisieramos conocer cuál es el último índice de nuestra matríz sería:
Código
  1. $ULTIMO_INDICE=$#Matriz;

Variables de Matrices Asociadas o Hashes:
Éste último tipo es conocido como tablas de hash y se notan con el símbolo "%". Es similar a las matrices comúnes pero cada valor se referencia por una clave, que es una palabra, y no por un número. Hay dos modos de inicializar el hash, donde la primera es poco visible.Veamos un ejemplo:
PRIMER CASO
Código
  1. %Numeros(Uno, 1, Dos, 2, Tres, 3, Cuatro, 4);
SEGUNDO CASO
Código
  1. %Numeros(
  2.        Uno=>1,
  3.        Dos=>2,
  4.        Tres=>3,
  5.        Cuatro=>4
  6. );
En ambos casos las claves son Uno, Dos, Tres y Cuatro, pero el segundo es más visible. Ahora para referenciar los valores usamos llaves en vez de corchetes, y claves en vez de números, así:
Código
  1. $Numeros{Dos}; # Nos da el 2
Y podemos asignar valores de a uno así:
Código
  1. $Numero{Uno}=9; # Cambia el 1 por un 9;
  2. $Numero{"tres"}=50; # Tambien se pueden usar comiilas dobles.

Como los Arrays, los Hashes tienen sus métodos para operar de diferenctes maneras con ellos:

delete($matriz{clave})
-Borra EL PAR COMPLETO clave/valor del hash..

values(%hash)
-Muestra LOS VALORES del hash (no las claves) SIN ORDENARLAS.

keys(%hash)
-Muestra LAS CLAVES de un hash.

each(%hash)
-Muestra solo un par clave/valor del hash que pusimos como parámetro.

exists $hash{clave}
-Si existe la clave en el hash %hash la funcion devuelve 1.

defined $hash{clave}
-Si la clave existe o simplemente está definida, devuelve 1.

Existe una función extra que podemos usar como filtro para ordenar valores: sort.
Por ejemplo, si queremos mostrar las claves de un hash de forma ordenada debemos usar:
Código
  1. print sort(keys(%hash));

Esto culmina nuestro primer capítulo. Ahora sabemos las bases de Perl, y podemos comenzar a trabajar con ficheros y tratamientos para darnos cuenta de cuántas utilidades le podemos dar a éste lenguaje.
214  Seguridad Informática / Hacking / Re: Jugando con netcat en: 23 Febrero 2008, 17:33 pm
Hay algunas cosa que deberian saber antes de postear preguntas:

1- El buscador no muerde: No es necesario leer todo el tema para encontrar una respuesta, el boton buscar lo hara por ustedes ; )

2- Leer algo de redes y seguridad informatica es indispensable, ya que muchos fracasan por desconocer cuestiones minimas. Un buen comienzo es el documental sobre Piratas Informaticos que podran encontrar en YouTube, en el que genios como Kevin Mitnick cuentan su experiencia. Ahi entenderan que gran parte de la penetracion de un sistema es paciencia.

3- Netcat no es la unica herramienta util. hay muchas cosas interesantes en www.thc.org, y cryptcat tambien es una buena opcion, en particular he logrado que no lo detecten muchos antivirus y herramientas.
215  Programación / Scripting / Re: Mensajeria para elhacker.net en: 21 Febrero 2008, 02:46 am
El vector se cargaría cada vez que un cliente quiera conectarse... Si cargase el vector y pretendiese manejarlo para añadir y quitar usuarios en tiempo de ejecución debería hacerlo con el mismo programa, corriendo el riesgo de que toda la lista se pierda ante cualquier problema. De ésta forma sólo cargo la lista cuando es necesario permitiendo que otro programa se encargue de los registros.

Citar
Mis conocimientos de perl son muy limitados, y no sé si un lenguaje de scripting sería lo  mejor

Cuando hablamos de Perl no hablamos de un lenguaje de scripting cualquiera. Perl fue diseñado para éstas tareas, y a diferencia de otros lenguajes de scripting, Perl compila el programa antes de correrlo, y da miles de posibilidades que otros no, como la de crear procesos hijos y manejar conexiones con mucha facilidad.

Como ya dije, todavía trabajo en el protocolo y la manera de hacerlo más flexible, pero en cuanto elabore algo sólido aviso.
216  Programación / Scripting / Re: Mensajeria para elhacker.net en: 20 Febrero 2008, 23:51 pm
¬¬ Eso es una página para entrar a un WebChat.... lo que dije al principio de mi post era a modo introducción. Pero si quisiera solamente un canal de IRC habría propuesto crear uno en FreeNode o algo así, que son redes muy grandes y sencillas de usar, pero lo que propongo es crear un servidor de mensajería (y tal vez sus respectivos clientes)... Si te referís a la interfáz web creo que usar Java para ésto es un malgasto de memoria, aunque tal vez a algunos no les importe mientras no deban bajar un programa nuevo. Mi idea del cliente es sin salirme de PERL, usando PerlQt como interfáz. Tal vez en Windows sea sencillo crear un cliente usando AutoIt, o Visual Basic, de los que prefiero AutoIt.

Doy por obvio que se requiere cierto conocimiento de PERL para ésto...  :¬¬
217  Programación / Scripting / -=PERL=- en: 20 Febrero 2008, 23:39 pm
#-=PERL=-#

Bueno, vi el manual de Python de TxShack y me interesó su comentario acerca de Python vs Perl  :xD ... No te enojes, no es competencia, pero se me dio por hacer éste mini-manual de Perl ya que AMO a este lenguaje desde la primera vez que lo use...

Me interese por PERL cuando en uno de los conocidos manuales de hacking (mayormente) inofensivo leí la frase:

"PERL es el Lenguaje Amigo-Del-Hacker"

Desde entonces paso un largo tiempo hasta que agarré un manual de Perl... pero desde la primer aplicación no dejé de usarlo compulsivamente hasta hoy.

Creado en 1987 por Larry Wall como herramienta que llenaba los huecos dejados básicamente por AWK y SED. Ha influido a Python, PHP, Ruby, ECMAScript entre otros, corre en gran cantidad de Sistemas Operativos, se distribuye bajo la Licencia Artística o bajo la GPL.

Quisiera agregar que NO Abarcare todo el lenguaje ni sus trucos ni mucho menos, ya que Perl es uno de los lenguajes más extensos que conozco. En todo caso, hay interminable documentación incluida en perldoc (y cuando digo interminable hablo en serio).

Perl es un lenguaje complejo, MUUUY AMPLIO que ofrece un sinfin de posibilidades de las más variadas.

Para que sirve PERL?:
No es por ser mala onda pero si todavía tenés ésta duda ¡LEE LO ANTERIOR! - Perl sirve prácticamente para todo lo que desees. La inmensa cantidad de módulos que se han programado para Perl lo hace un lenguaje Amplio y Ampliable.

Pero a todo ésto ¿Como es PERL?:
Su sintáxis es muy similar a la de C, pero  a diferencia de éste, Perl no es tan estructurado, y yá en éste punto es necesario mencionar el lema de Perl : "SIEMPRE HAY MÁS DE UNA FORMA DE HACERLO"... y eso es marca registrada. Cuando escribes Perl puedes elegir entre miles de formas de hacer lo mismo.
Otra cosa a saber es que "SEGURAMENTE ALGUIEN YA HIZO UN MÓDULO PARA LO QUE NECESITO".
Perl es un lenguaje muy extensible y es en gran parte gracias a los módulos. No veremos ahora esa parte específicamente, pero basta saber que los módulos nos facilitarán la vida muchísimo, al punto que ejecutar comandos en una máquina remota se vuelve cuestión de unas cuantas líneas... creando una conexión en unas eficaces dos o tres líneas ( o_O ).
Empecemos por una básica comparación C - C++ -Perl :

Hola mundo en C
Código
  1. #include <stdio>
  2.  
  3. int main(void)
  4. {
  5.    printf("Hola Mundo!\n");
  6. }

Hola Mundo en C++
Código
  1. #include <iostream>
  2.  
  3. int main(void)
  4. {
  5.    cout << "Hola mundo!\n";
  6. }

Hola Mundo en Perl
Código
  1. print "Hola Mundo\n";

O bien podemos usa el SheBang para invocar al interprete de Perl, o bien para invocar una versión específica, o pasar parámetros a dicho intérprete en caso de querer que sea ejecutado de otra forma, o bien muchas cosas que pueden ver en la página correspondiente de perlrun, aqui: http://perldoc.perl.org/perlrun.html#DESCRIPTION

Y empiezan nuestras posibilidades ilimitadas con Perl... ya que podríamos usar éste modo:

Código
  1. #!/usr/bin/env perl -W
  2. use strict;
  3. print "Hola mundo!\n";

Y entonces introduciríamos el control de calidad del pragma strict, con el que, por ejemplo, no podremos inicializar una variable sin usar my.

Citar
En general lo que hace la directiva sctrict es generar errores al programas en caso de que se encuentre lo que pueda considerar "programación insegura"

A demás usamos el parametro -W con lo que activamos todas las advertencias (Warnings).

Pueden encontrar mucha información de PERL en wikipedia...


UNA INTRODUCCION

Pero empecemos con algo útil... una de las mayores capacidades de Perl es Escribir y Leer ficheros (Aunque no haya sido su significado desde un principio, actualmente Perl se conoce por las siglas Practical Extraction and Report Language... a tal punto que es la cabecera de su página de manual de Unix)

Para abrir un fichero en Perl hay que usar open()... y otra vez, recuerden que HAY MAS DE UNA FORMA DE HACERLO, tal es así que entre la documentación de perl encontramos una página llamada perlopentut en la que encontraremos muchos trucos acerca de la apertura de ficheros. Para usuarios de sistemas Unix (ej: Linux) pueden abrir una terminal y escribir perldoc perlopentut. Usuarios de debian o sistemas similares (ej: ubuntu) necesitaran instalar el paquete perl-doc
 lo cual pueden hacer mediante el comando sudo apt-get install perl-doc.
Pueden ver una lista de la enorme cantidad de documentacion disponible con el comando man perl o perldoc perl.

NOTA: Perl es una herramienta diseñada para sistemas UNIX aunque hoy en día soporta múltiples plataformas. Para correr Perl debes tener instalado el intérprete de Perl. Puedes visitar www.perl.com o www.perl.org para ver lo referente a tu sistema operativo. La documentación del comando perldoc incluye notas para muchos sistemas distintos, ver la lista en perldoc perl

Pasemos al grano:

UNA FORMA DE ABRIR Y ESCRIBIR UN FICHERO EN PERL:
Código
  1. #!/usr/bin/perl -W
  2.  
  3. # Esto es un comentario, lo que viene es la variable con la ruta...
  4.  
  5. my $Ruta_Fichero="/home/d4rio/perlscripts/utils/escribime.text";
  6.  
  7. # Ahora abro el fichero para escribirlo...
  8.  
  9. open IDENTIFICADOR "> $Ruta_Fichero";

Hasta ahi es suficiente para que expliquemos algo:: lo que sigue a open es el identificador del fichero (filehandle). Usaremos ese identificador para referirnos al fichero abierto en adelante. El signo ">" que usamos significa que escribiremos en el fichero. Es simple, se usan las mismas notaciones que usaríamos en la consola, por ejemplo, en una consola de UNIX, ésto:

Código
  1. echo "Escribo algo" > nombre_de_fichero;

...sería mandar la salida de ese comando a "nombre_de_fichero"... pero NO CONTINUANDO. En DOS o la consola de Windows es igual:

Código
  1. echo "Hola, como andan?" > archivo.txt

...escribiría "Hola, como andan?" en el fichero "archivo.txt" pero NO CONTINUANDO

NOTA: Con "NO CONTINUANDO" me refiero a que si el archivo contenía algo será borrado en vez de continuar al final del fichero.

Para abrir un archivo se pueden usar varios modos:
Modo de lectura: Lee el fichero<
Modo de escritura: Sobreescribe el fichero (si habia algo lo borra)>
Modo de escritura: Escribe al final del fichero>>

Pero se puede usar una tubería para pasar la salida de un comando a nuestro programa como si leyeramos un fichero, o bien pasar todo lo que escribamos en el identificador a un comando.
Si desean ver los miles de usos de open vean perldoc perlopentut

Ahora iremos pidiendo los datos de una persona y al final los meteremos en un fichero:

Código
  1. #!/usr/bin/env perl
  2.  
  3. # PIDO LOS DATOS
  4. print "Hola, necesito que me des unos datos...\n\n";
  5. print "Nombre: ";
  6. chop($NOMBRE=<STDIN>);
  7. print "Apellido: ";
  8. $APELLIDO=<STDIN>;
  9. chop($APELLIDO);
  10. print "\n";
  11.  
  12. # ABRO EL FICHERO
  13. open (MI_LOG, ">", "/home/d4rio/perlscripts/utils/profile.nada") or die "NO SE PUEDE CREAR EL FICHERO!\n";
  14.  
  15. # ESCRIBO
  16. print MI_LOG "Nombre: $NOMBRE Apellido:$APELLIDO\n";
  17.  
  18. # CIERRO EL ARCHIVO
  19. close MI_LOG;

Como ven incluimos otra forma de abrir el fichero (que consume unos bytes más de memoria), y la capacidad de procesar un error (NO SE PUEDE CREAR EL FICHERO)...

Vemos tambien chop() que es una funcion para quitar el último carácter, que es en general el retorno de carro y por eso siempre se quita. Tambien vemos cómo asignar a una variable el valor introducido en la Entrada Standard (<STDIN>).

Como verán es un lenguaje muy flexible, y eso que todavía no vimos nada más que una introducción. Ya veremos otras capacidades de Perl, como la gran facilidad para manejarnos con conexiónes a Internet, pero no alcanzaremos a contemplar toda la capacidad de éste lenguaje, como Interfaces gráficas con Qt, interacción con OLE en Windows, capacidad de manejar imágenes, actuar como CGI en programación web, Tratar con bases de datos, etcétera...

BUENO, ësta fue la INTRODUCCION A PERL }=) ::.
En otra ocasión nos adentraremos en éste vasto lenguaje, el LENGUAJE-AMIGO-DEL-HACKER.
218  Programación / Scripting / Re: Mensajeria para elhacker.net en: 20 Febrero 2008, 20:48 pm
Por ahora estoy mejorando los scripts y el protocolo... En cuanto tenga algo más sólido lo posteo. Por ahora les bastará saber que uso IO::Socket, así que deberían manejarlo... es muy simple.
Por ahora el protocolo es simple, la primer fase es similar al protocolo de MSN, con un servidor de notificación.

Como en PERL es necesario sacar los carácteres de fin de línea uso una función que determina si la transferencia del usuario es con uno o dos carácteres de fin de línea (diferencia que noté entre telnet y netcat). Así la primer fase del protocolo es recibir una cadena específica (aun no decidi cual será) y pasarla a esa función, que básicamente hace ésto, poniendo a CADENA_ESPERADA como la cadena que esperamos recibir, y CADENA es la cadena recibida:

$DOBLE_CARACTER=0;
quitar ultimo caracter de $CADENA;
si $CADENA es distinta a $CADENA_ESPERADA hacer;
        quitar ultimo caracter de $CADENA;
        $DOBLE_CARACTER=1;
fin si;
si $CADENA es distinta a $CADENA_ESPERADA hacer;
        $INTERNAL_FATAL_ERROR="Se recibio una cadena falsa, se esperaba $CADENA_ESPERADA";
fin si


Asi, si se envia una cadena que aun sin los dos ultimos caracteres es distinta a la esperada, sabemos que es una cadena fuera del protocolo, y cerramos la conexion.
Sino, el protocolo sigue adelante y pide el NickName y el PassWord, que serán tratados conforme a lo que el paso anterior detectó.

Ahora carga, a partir de un fichero de texto, un arrays con los NickNames y los PassWords (se guarda un fingerprint del password para no comprometer la seguridad)... los protocolos de seguridad se verán luego. La lista está ordenada para que la búsqueda por el método binario sea posible (La lista solo se debe modificar en caso de añadirse o quitarse un usuario, asique se escribe ordenada y asi permite que la busqueda use éste método)

Para los que no sepan lo que es la busuqeda por metodo binario, prefiero llamarla búsqueda por divisiónes múltiples. Omite la lectura se todos los elementos (que podrían ser demasiados) leyendo solo unos pocos. Si buscamos el elemento "Nico" en un array de 1000 elementos, tomamos el elemento 500 (1000/2) y lo comparamos. Si ese elemento es "Ramiro" es evidente que nos hemos pasado y debemos buscar en la sublista que va de 0 a 499 (el 500 ya lo vimos)... asi se omitieron 500 elementos que habrían sido evaluados de otra forma.
El método se repite hasta dar con el elemento "Nico" o notar que no está.

Si la autenticación es correcta se pasan los datos a otro servidor (o el mismo en otro puerto) y se sigue el protocolo que en otro momento explicaré.

A éste punto el servidor de notificación sólo debe atender algunas operaciónes mientras que la red puede ser descentralizada.

Otro servidor hace las veces de "centinela" buscando servidores caídos y transfiriendo a los usuarios a otro servidor.

Si hay ganas lo hacemos... claro que la organización de algo tan grande requiere:

 - Al menos un servidor
 - Un equipo organizado trabajando en un proyecto debidamente documentado
 - Un método de trabajo

Y necesitaré gente con ganas o me volvería loco llevando la documentación y el proyecto.
219  Programación / Scripting / Mensajeria para elhacker.net en: 19 Febrero 2008, 00:13 am
Ya es un tema ampliamente discutido el de un canal de IRC para elhacker.net, y aclaro que estoy desinformado acerca de si se ha llegado o no a una conclusion en ese sentido. Pero vengo proponiendo un nuevo proyecto que se que les va a interesar...
En este ultimo tiempo estudie el protocolo de la red MSN y pase algo de tiempo haciendo pruevas para crear una nueva red de mensajeria instantanea sobre la que tengamos un control total.
Estoy diseñando unas primeras bases a fuerza de PERL, y solucionando algunos problemas de protocolo.

Se que todos en éste sitio se sentiran atraidos a la experiencia de crear una nueva red de mensajeria en la que podmos trabajar a gusto. Mi idea es experimentar nuevas tecnologías que permitan una cifrado rápida, seleccion de múltiples protocolos, descentralizacion de la red, etcétera.

Por supuesto, no pretendo desarrollar tal empresa en un hilo del foro... sería imposible... pero si hay suficientes voluntarios haremos lo posible paraque el proyecto se realice.

Es hora de despertar ese espiritu h4ck3r y explorar!!  :xD :xD
220  Foros Generales / Foro Libre / Re: Sus escritorios en: 15 Febrero 2008, 18:26 pm
Excelente Wallpaper... creo q lo vi en kde-look.org - Aunque no soy partidario del look de Gnome (Por lo menos no sin algunos agregados)...pero me gusta ver escritorios Linuxeros!

Es mas, como me emocione voy a poner el de mi kubuntu hace unas semanas y el de mi debian etch (q en paz descanse XD... lo formatie)::.

PD:: El de debian es el clasico look de Gnome que me gusta... moooy mio XD



Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines