elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 01:45  



  Mostrar Mensajes
Páginas: 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 ... 158
226  Seguridad Informática / Análisis y Diseño de Malware / Re: Desensamblador para Linux en: 18 Junio 2008, 16:39
Mira, aquí tienes la documentación de ese debugger en español:
http://www.drk.com.ar/docs/development/conociendo_gdb.php

No hace falta instalar nada, pon en la consola "gdb" y listo :P


Salu2
227  Programación / Programación VB / Re: Ayudita por ak. Encontrar y liberar memoria. en: 18 Junio 2008, 02:00
Oye no encuentro informacion en la api guide sobre CreateRemoteThread.
Podrias darme algun source donde enseñe a usarlo?

http://msdn.microsoft.com/en-us/library/ms682437.aspx

La primera entrada en google poniendo solamente su nombre y zas!, llegas a la documentación oficial de MS

Y si ya buscas un poco más pues encuentras un código en este mism foro que hace lo que tu quieres:
http://foro.elhacker.net/programacion_vb/inyeccion_para_crashear_procesos-t200065.0.html;msg951183#msg951183

Salu2
228  Programación / Programación General / Re: Intento de juego en Pascal en: 18 Junio 2008, 01:52
Hola

Yo para la universidad tuve que hacer un "pinball" en pascal, que realmente es una pelota (bueno una 'O') que choca y cae xD Te lo dejo para que veas como hize para imprimir el tablero y tal.

Lo del busca-minas es muy simple. Pintas el tablero y pides por teclado una casilla (no hace falta que uses grafics ni nada de eso) y usas GoToXY para pintar donde quieras y listo. Te dejo mi "pinball" por si le quieres hechar un ojo a algunas funciones que te pueden ser útiles ;)

Código
PROGRAM P3A;
 
USES
 
 CRT;
 
CONST
 
 (* Colores para el formato del texto *)
 
 BLANCO   = 15;
 
 AMARILLO = 14;
 
 ROJO     = 4;
 
 
 
 (* Bordes del tablero *)
 
 ESQ_SUPI = chr(201);
 
 ESQ_SUPD = chr(187);
 
 ESQ_INFI = chr(200);
 
 ESQ_INFD = chr(188);
 
 BOR_HORI = chr(205);
 
 BOR_VERT = chr(186);
 
 
 
 (* Elementos del tablero *)
 
 PELOTA   = 'O';
 
 OBSTAC   = chr(219);
 
 
 
TYPE
 
 (* El tipo de array del tablero *)
 
 ATablero = ARRAY [0..9, 0..6] OF char;
 
 (* Estructura para la posici¢n de la pelota *)
 
 StructPos = RECORD
 
   F : Integer;         (* Fila donde se encuentra la pelota *)
 
   C : Integer;         (* Columna donde se encuentra la pelota *)
 
   Direccion : Integer; (* Direcci¢n hacia la que va la pelota *)
 
 END;
 
 
 
(************************************)
 
(*           SUBPROGRAMAS           *)
 
(************************************)
 
 
 
 
 
(* Procedure que va llamando a distintos procedures
 
para crear la animaci¢n completa as¡ como pedir datos
 
y de m s. *)

 
PROCEDURE CrearAnimacion;
 
VAR
 
 Obstaculos : Integer;   (* El n£mero de obstaculos *)
 
 Tablero    : ATablero;  (* El tablero *)
 
 PosPelota  : StructPos; (* La posici¢n de la pelota *)
 
 Ganar      : Boolean;   (* Si hemos ganado o no *)
 
 Continuar  : Integer;   (* Para saber si el jugador quiere jugar m s *)
 
 
 
 
 
 (* Funci¢n que lee por teclado el n£mero
 
 de obstaculos que tendr  el tablero *)

 
 FUNCTION LeerObstaculos : Integer;
 
 VAR
 
   Obstaculos : Integer; (* El n£mero de obstaculos *)
 
 
 
 BEGIN (* LeerObstaculos *)
 
   REPEAT
 
     Clrscr; WriteLn;
 
     Write  ('šCu ntos obstaculos quiere poner en el tablero? ');
 
     ReadLn (Obstaculos);
 
     IF (Obstaculos  < 0) OR (Obstaculos > 39) THEN
 
     BEGIN
 
       TextColor(ROJO);
 
       WriteLn; WriteLn ('N£mero de obstaculos incorrecto, introduzca un valor entre 0 y 39');
 
       TextColor(BLANCO);
 
       delay(2000);
 
     END;
 
   UNTIL (Obstaculos  >= 0) AND (Obstaculos <= 39);
 
   LeerObstaculos := Obstaculos;
 
 END; (* LeerObstaculos *)
 
 
 
 
 
 (* Procedure que inicializa el tablero coloc ndole
 
   los bordes, la pelota y los obstaculos.
 
   ENTRADA:
 
    - VAR Tablero : El tablero a inicializar
 
    - Obstaculos  : EL n£mero de obstaculos
 
    - StructPos   : La posici¢n de la pelota *)

 
 PROCEDURE IniTablero(var Tablero : ATablero; Obstaculos : Integer;
 
                      var PosPelota : StructPos);
 
 
 
       (* Procedure que pone los bordes al tablero *)
 
       PROCEDURE PonerBordes (var Tablero : ATablero);
 
       VAR
 
         F, C : Integer; (* Contadores para recorres filas y columnas *)
 
       BEGIN (* PonerBordes *)
 
         FOR F :=0 TO 9 DO
 
         BEGIN
 
             FOR C :=0 TO 6 DO
 
             BEGIN
 
              IF F=0 THEN (* Primera fila *)
 
                CASE C OF
 
                  0 :  Tablero[F,C] := ESQ_SUPI;
 
                  6 :  Tablero[F,C] := ESQ_SUPD;
 
                  ELSE Tablero[F,C] := BOR_HORI;
 
                END
 
              ELSE IF F=9 THEN (* Ultima fila *)
 
                CASE C OF
 
                  0 :  Tablero[F,C] := ESQ_INFI;
 
                  3 :  Tablero[F,C] := ' ';
 
                  6 :  Tablero[F,C] := ESQ_INFD;
 
                  ELSE Tablero[F,C] := BOR_HORI;
 
                END
 
              ELSE  (* El resto de las filas *)
 
                CASE C OF
 
                  0,6 : Tablero[F,C] := BOR_VERT;
 
                  ELSE Tablero[F,C] := ' ';
 
                END;
 
             END; (* Segundo FOR *)
 
         END; (* Primer FOR *)
 
       END; (* PonerBordes *)
 
 
 
       (* Procedure que pone la pelota en alguna de las
 
       casillas superiores del tablero *)

 
       PROCEDURE PonerPelota (var Tablero : ATablero; var PosPelota : StructPos);
 
       VAR
 
         Posicion : Integer; (* La posici¢n aleatoria de la pelota *)
 
       BEGIN
 
         Posicion := Random(5)+1;
 
         Tablero[1,Posicion] := PELOTA;
 
         PosPelota.F := 1;
 
         PosPelota.C := Posicion;
 
         PosPelota.Direccion := Random(8);
 
       END;
 
 
 
       (* Procedure que pone los obstaculos en el tablero
 
       aleatoriamente *)

 
       PROCEDURE PonerObstaculos(var Tablero : ATablero; Obstaculos : Integer);
 
       VAR
 
         F, C, N : Integer; (* Filas y columnas *)
 
       BEGIN
 
         FOR N:= 1 TO Obstaculos DO
 
 BEGIN
 
   F := Random(8)+1;
 
   C := Random(5)+1;
 
   IF (Tablero[F,C] = ' ') THEN
 
     Tablero[F,C] := chr(219)
 
   ELSE
 
     N:= N-1;
 
         END;
 
END;  
 
 
 
 BEGIN (* IniTablero *)
 
   PonerBordes(Tablero);
 
   PonerPelota(Tablero, PosPelota);
 
   PonerObstaculos(Tablero, Obstaculos);
 
 END;  (* IniTablero *)
 
 
 
 
 
 (* Procedure que muestra por pantalla el tablero
 
 que anteriormente debe haber sido inicializado.
 
 ENTRADA:
 
  - Tablero        : El tablero a pintar *)

 
 PROCEDURE PintarTablero(Tablero : ATablero);
 
 VAR
 
   F, C : Integer; (* Contadores para recorrer filas y columnas *)
 
 BEGIN (* PintarTablero *)
 
   Clrscr; WriteLn; WriteLn;
 
   WriteLn(' Si desea salir pulse enter. Si no el juego finalizar  cuando la pelota');
 
   WriteLn(' salga por la casilla vacia de la parte inferior del tablero.');
 
   WriteLn; WriteLn; WriteLn; Write('                              ');
 
   FOR F := 0 TO 9 DO
 
   BEGIN
 
     FOR C := 0 TO 6 DO
 
       Write (Tablero[F, C]);
 
       WriteLn;
 
       Write('                              ');
 
   END;
 
 END;  (* PintarTablero *)
 
 
 
 (* Procedure que  mueve la pelota por el tablero
 
 seg£n corresponda.
 
 Devuelve TRUE si la partida ha terminado y FALSE en caso contrario. *)

 
 FUNCTION PosicionarPelota(var Tablero : ATablero; var PosPelota : StructPos) : Boolean;
 
 
 
        (* Procedure que comprueba el posible choque de la pelota
 
y si no choca la posiciona donde corresponde.
 
        ENTRADA:
 
         - SumFil, SumCol: El n£mero que hay que sumar en el array para
 
                           mover la pelota en la direcci¢n correcta.
 
         - Tablero: El array que representa el tablero.
 
         - PosPelota: La estructura con los datos de la pelota. *)

 
        Procedure MoverPelota(SumFil, SumCol : Integer; var Tablero : ATablero; var PosPelota : StructPos);
 
        BEGIN
 
          (* Si la pelota se puede mover *)
 
          IF Tablero[PosPelota.F + SumFil, PosPelota.C + SumCol] = ' ' THEN
 
          BEGIN
 
            Tablero[PosPelota.F, PosPelota.C ] := ' ';
 
            PosPelota.F := PosPelota.F + SumFil;
 
            PosPelota.C := PosPelota.C + SumCol;
 
            Tablero[PosPelota.F, PosPelota.C] := PELOTA;
 
          END
 
          (* Si la pelota se choca *)
 
          ELSE
 
            PosPelota.Direccion := Random(8);
 
        END;
 
 
 
 
 
   BEGIN (* PosicionarPelota *)
 
 
 
   (* Comprobamos si hemos ganado *)
 
   IF (PosPelota.F = 9) AND (PosPelota.C = 3) THEN
 
   BEGIN
 
      PosicionarPelota := TRUE;
 
      WriteLn; WriteLn; WriteLn;
 
      TextColor(AMARILLO);
 
      WriteLn('                ­Felicidades! Ha ganado usted el juego.');
 
      TextColor(BLANCO);
 
   END
 
   ELSE
 
      PosicionarPelota := FALSE;
 
 
 
   CASE PosPelota.Direccion OF
 
     0: (* Arriba *)
 
        MoverPelota(-1, 0, Tablero, PosPelota);
 
     1: (* Arriba-Derecha *)
 
        MoverPelota(-1, 1, Tablero, PosPelota);
 
     2: (* Arriba-Izquierda *)
 
        MoverPelota(-1, -1, Tablero, PosPelota);
 
     3: (* Izquierda *)
 
        MoverPelota(0, -1, Tablero, PosPelota);
 
     4: (* Derecha *)
 
        MoverPelota(0, 1, Tablero, PosPelota);
 
     5: (* Abajo *)
 
        MoverPelota(1, 0, Tablero, PosPelota);
 
     6: (* Abajo-Derecha *)
 
        MoverPelota(1, 1, Tablero, PosPelota);
 
     7: (* Abajo-Izquierda *)
 
        MoverPelota(1, -1, Tablero, PosPelota);
 
   END; (* END CASE *)
 
 
 
 END;  (* PosicionarPelota *)
 
 
 
BEGIN (* CrearAnimacion*)
 
 REPEAT
 
   Obstaculos := LeerObstaculos;
 
   IniTablero (Tablero, Obstaculos, PosPelota);
 
   REPEAT
 
     PintarTablero(Tablero);
 
     Ganar := PosicionarPelota(Tablero, PosPelota);
 
     Delay(20);
 
   UNTIL KeyPressed OR Ganar;
 
 REPEAT
 
   WriteLn; WriteLn; WriteLn;
 
   Write(' šDesea jugar otra partida? (1 Si/2 No)');
 
   ReadLn (Continuar);
 
   IF (Continuar <> 1) AND (Continuar <> 2) THEN
 
   BEGIN
 
      TextColor(ROJO);
 
      WriteLn; WriteLn('Opcion incorrecta. 1 Si/2 No');
 
      TextColor(BLANCO);
 
   END;
 
 UNTIL  (Continuar = 1) OR (Continuar = 2);
 
 UNTIL  Continuar = 2;
 
END; (* CrearAnimacion*)
 
 
 
 
 
(************************************)
 
(*       PROGRAMA PRINCIPAL         *)
 
(************************************)
 
 
 
BEGIN (* Programa principal *)
 
 Randomize;
 
 TextColor(BLANCO);
 
 CrearAnimacion;
 
END.

Salu2 E0N
229  Seguridad Informática / Análisis y Diseño de Malware / Re: Ayuda con sistema de mutación viral en: 18 Junio 2008, 01:39
Ciertamente siempre acaban pillando el patrón xD Un buen enlace para coger ideas básicas sobre polimorfismo en virus:

http://www.wikilearning.com/curso_gratis/curso_de_programacion_de_virus-tecnicas_avanzadas/4312-17

No es muy avanzado, pero te servirá ;) Sobre lo de consultar una web para ver si es detectado o no a mi me parece más práctico que si es detectado se cambie por un exe nuevo e indetectable en vez de cambiar la encriptación...

Salu2
230  Programación / Programación VB / Re: Ayudita por ak. Encontrar y liberar memoria. en: 17 Junio 2008, 12:13
La cosa es o usar WriteProcessMemory a lo burro para sobrescribir algo importante o crear un hilo en el proceso deseado que empiece en una dirección de memoria no válida con CreateRemoteThread (recomiendo lo segundo, que es más eficaz :P)

Salu2
231  Programación / Programación C/C++ / Re: duda sobre evadir antivirus... en: 15 Junio 2008, 20:33
Pues la base para encriptar un api es llamarla por su posición en memoria, investiga sobre GetProcAddress. A partir de ahí puedes inventarte muchas cosas, eso ya lo dejo a tu imaginación  :rolleyes:
232  Programación / Programación C/C++ / Re: duda sobre evadir antivirus... en: 15 Junio 2008, 14:12
Citar
lo del cripter es relativo... el antivirus no lo va a detectar hasta no ejecutarlo... pero al ejecutarlo el antivirus rastrea las operaciones que se hacen... así que de todas formas los detiene (te digo porque a varios gusanos no me los detectó hasta que se ejecutaron)

Eso depende de como esté hecho el crypter. Si el crypter es solo scan-time a la hora de ejecutarlo te lo va a detectar, ya que lo que hace es desencriptar el archivo que lleba pegado, guardarlo en disco y ejecutarlo. Si también es runtime no te lo va a detectar ningún AV, por que el archivo se ejecuta directamente en memoria, sin pasar por disco ;)

Citar
lo mejor que podes hacer es evitar un comportamiento predecible

Ciertamente si tienes el código es lo mejor que puedes hacer, evita cosas como auto-copiarte y añadirte al registro nada más  iniciarse el programa, apis como UrlDownloadFile o CreateRemoteThread, etc
Aunque si encriptas la llamada al api bien puedes usarlas sin problemas ;)

Sinos que es lo que te detecta exactamente el AV y a ver que se puede hacer

Salu3
233  Programación / Programación C/C++ / Re: Duda en declaración de funciones... en: 15 Junio 2008, 13:59
Citar
alguien sabe como podría quedar el código final sin tanto fallo?

Con gcc -c -Wall pru.cpp y sin ningún error o warning:

Código
#include <stdio.h>
 
int main (void)
{
// FUNCIONES
void tabla_multiplicar(int A);
void producto_sumas (int numero1, int numero2);
void numeros_comprendidos (int numero3, int numero4);
 
int opcion, numero, numero1, numero2, numero3, numero4;
 
printf ("\t\t----Menú----\t\t\n\n");
printf ("\t1. Tabla de multiplicar.\n");
printf ("\t2. Producto por sumas.\n");
printf ("\t3. Números comprendidos.\n");
printf ("\t0. Salir.\n");
printf ("\tElija una opción (0-3): ");
scanf ("%d", &opcion);
 
switch (opcion) {
 
case 1: printf ("\tHa elegido la opción 1.\n");
       printf ("\tIntroduzca el número a multiplicar: ");
scanf ("%d", &numero);
tabla_multiplicar (numero);
break;
 
case 2: printf ("\tHa elegido la opción 2.\n");
               printf ("\tIntroduzca el primer número: ");
scanf ("%d", &numero1);
printf ("\tIntroduzca el segundo número: ");
scanf ("%d", &numero2);
if (numero&&numero2>0)
producto_sumas (numero1, numero2);
else
printf ("\tLos valores introducidos son incorrectos.\n");
break;
 
case 3: printf ("\tHa elegido la opción 3.\n");
printf ("\tIntroduzca el primer número: ");
scanf ("%d", &numero3);
printf ("\tIntroduzca el segundo número: ");
scanf ("%d", &numero4);
numeros_comprendidos (numero3, numero4);
break;
 
case 0: printf ("\tHa elegido la opción 0.\n");
break;
 
      default: printf ("\tLa opción elegida es incorrecta.\n");
      }
}
 
void tabla_multiplicar (int A)
{
 
int resultado;
int i;
 
for (i=0; i<11; i++)
{
resultado= A * i;
printf ("%d\n", resultado);
}
}
 
void producto_sumas (int numero1, int numero2)
{
 
int c=0;
int contadorB;
 
contadorB=0;
 
do
{
c+=numero1;
contadorB++;
  }while (contadorB<numero2);
 
printf ("El numero es: %d\n", c);
}
 
void numeros_comprendidos (int numero3, int numero4)
{
 
int numeroauxiliar;
 
 
if (numero3<numero4)
{
numero4--;
 
while (numero3<numero4)
{
numero3++;
printf ("%d\n", numero3);
}
}
 
if (numero4<numero3)
{
numeroauxiliar=numero4;
numero3--;
 
while (numero3>numeroauxiliar)
{
numeroauxiliar++;
printf ("%d\n", numeroauxiliar);
}
}
}

La declaración de las funciones las puedes sacar del main y llevártelas arriba sin problemas, pero si solo las vas a llamar desde el main...

Salu2
234  Programación / Programación VB / Re: Presentacion en un programa en vb en: 15 Junio 2008, 13:49
Se suele llamar Splash a esa ventana. La idea es cargar esa ventana y la ventana principal de tu programa a la vez pero oculta y pasado un tiempo prudencial para que haya cargado todo ocultar el Splash y mostrar tu programa ya cargado.

Si tu programa tarda poco en cargar y lo quieres poner por que queda bien simplemente pues haz lo que te ha dicho Xerok1! y listo :P

Salu2
235  Seguridad Informática / Análisis y Diseño de Malware / Re: AVISO TEMPORAL: Para TOMAR EN CUENTA en: 15 Junio 2008, 13:29
Citar
A mi esta restructuración no me parece mal porque yo ya aprendí lo suficiente y me se defender con términos normales-complejos de este foro pero a mi me parece mal que el foro no deje  por lo menos ALGÚN POST de recopilación de como usar troyanos y de  FAQ para los principiantes con ganas de aprender (como yo lo fuí en algún momento)

saludos

pd: cuando el nuevo foro se reestructure yo mismo podría crear un post con una recopilación de como usar el PI 2.3 y las FAQ si Man-in-the-Middle me deja.

Precisamente ese tipo de lammeradas es lo que queremos eliminar, si alguien quiere hacerse el super-hax0r pasándole al PI el crypter indetectable de turno he infectar a mil personas que se vaya a otro foro.
El cambio lo que pretende es precisamente evitar ese tipo de cosas, de ahí lo de no subir ejecutables y solo dar el código fuente.

El problema va a estar con las personas que no quieran dar el codigo fuente :P

No veo el problema, si no quieres dar el código fuente, pues no publiques la herramienta, es así de simple. Me pongo a mi mismo como ejemplo, no voy a liberar el código fuente del Small Crypter Público, pues simplemente se borra mi post y aquí paz y despues gloria ;)

Salu2, por fin se lleva a cabo el cambio que todos queríamos
236  Programación / Programación C/C++ / Re: Duda en declaración de funciones... en: 13 Junio 2008, 18:33
Pues a mi como es lógico el gcc no me lo compila:

Citar
e0n@equipo:~/Escritorio$ gcc pru.cpp
pru.cpp: In function ‘int main()’:
pru.cpp:22: error: ‘tabla_multiplicar’ no se declaró en este ámbito
pru.cpp:30: error: ‘producto_sumas’ no se declaró en este ámbito
pru.cpp:39: error: ‘numeros_comprendidos’ no se declaró en este ámbito
pru.cpp: At global scope:
pru.cpp:50: error: ISO C++ prohíbe la declaración de ‘tabla_multiplicar’ sin tipo
pru.cpp:66: error: ISO C++ prohíbe la declaración de ‘producto_sumas’ sin tipo
pru.cpp:86: error: ISO C++ prohíbe la declaración de ‘numeros_comprendidos’ sin tipo

No se que versión usarás tu o que distro o Dios sabe que, por que eso no está contemplado en el estándar de C. Aparte de que te falta declarar los tipos que devuelve cada función...

Salu2
237  Programación / Programación VB / Re: (source) Anti KeyLogger Password en: 13 Junio 2008, 16:34
Muy bueno Leandro, es como el osk de win, pero con la interfaz mejorada ^^Te lo añado al recopilatorio de códigos ;)

Salu2
238  Programación / Programación General / Re: ¿Qué Lenguaje utilizar? en: 13 Junio 2008, 16:24
En java por ejemplo con NetBeans puedes ir arrastrando los controles como en C#. NetBeans además es gratuito y multiplataforma.

Salu2
239  Programación / Programación VB / Re: Simulación de consola en VB en: 12 Junio 2008, 17:35
Infórmate sobre las apis de familia de AllocConsole, WriteConsole, ReadConsole, etc y luego con unos pipes simulas la entrada/salida de la consola

Salu2
240  Programación / Programación VB / Re: Temperatura Del Disco en: 10 Junio 2008, 03:25
Está muy ben la herramienta, te la añado a la biblioteca de códigos interesantes

Salu2
Páginas: 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 ... 158






Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats