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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1] 2 3 4
1  Programación / Scripting / script para grabar cdrom en: 28 Noviembre 2010, 15:55 pm
Hola
Como sabeis XP tiene la capacidad de grabar un archivo en un cd virgen sin necesidad de nero ni cosas semejantes.

Pues yo quiero automatizar eso. Quiero un script que me permita grabar un archivo a un cd de forma automática. En definitiva lo que yo quieo es que la salida de una aplicacion se guarde en un cdrom al modo de que fuera un disquete. Dado que ese programa deja un fichero yo quiero mediante un batch dejar ese fichero en un cdrom.

Y no encuentro información de quien hace eso y como. Todo lo que veo por ahí es que use nero.

¿alguna idea?
2  Seguridad Informática / Criptografía / Test de primalidad Miller-Rabin con GMP en: 29 Octubre 2010, 22:16 pm
Hola.

Estoy teniendo muchos problemas con la dichosa rutinita esta y aún no funciona. Para saberlo le meto un número que sé que es primo (porque aparece en alguna lista de números primos en internet) y me dice que no es primo así que no está bien.

Os pongo lo que tengo hecho a ver si encontramos la causa:

Puede salir un tocho porque voy a poner muchas anotaciones para que no os perdais con GMP pero bueno ...

Aquí empiezo. Incluyo gmp para poder trabajar con números grandes, defino dos funciones y creo una variable 104729 que es un número primo conocido para pasar el test. El resultado debe ser que ese número es primo.

Miller Rabin tiene un factor de error de 1/4 así que siempre se debe repetir el test varias veces para asegurarse que siempre que ese número pasa el test se devuelve que es primo. Si una sola vez saliera que es compuesto ya sabríamos que el númeor es compuesto.
Código:
# include <gmp.h>

# define ES_PRIMO 1
# define NO_ES_PRIMO 0

int miller_rabin_test ( mpz_t n, int k );
int ComprobarDivisibilidad( mpz_t n );

int main(void)
{
   int i;
   char *c="104729";
   mpz_t n;
   mpz_init(n); //inicio la variable n
   mpz_set_str(n,c,10); //meto el número a probar en n
   if ( miller_rabin(n, 10) == ES_PRIMO ) { // 10 es el número de comprobaciones que haré
       printf("%s es primol\n",c);
     } else {
       printf("%s no es primol\n",c);
     }
   
}

Ahora el test de Miller Rabin en sí mismo. Para facilitar la rapidez lo primero que hago es ver si es divisible por los primeros diez mil números primos conocidos. Si es divisible por alguno es que el número es compuesto y no hay que perder mas tiempo.

Código:
int miller_rabin ( mpz_t Num, int Comprobaciones )
{
  int r, s, EsPrimo=ES_PRIMO;
  mpz_t NumDec, ValorAleat, ValorAux, d, ValorTemp;
  if (ComprobarDivisibilidad(Num) == 0) { // comprobar si es divisible entre los primeros
    EsPrimo=NO_ES_PRIMO;   // 10.000 números primos
  }

Omito la función ComprobarDivisibilidad para no hacer mas tocho y me centro en Miller Rabin.

Miller Rabin requiere que se encuentre un par de números R y S tal que satisfagan que (N-1)=R * 2^S. Además R debe ser impar.

Num es el número a comprobar.
NumDec es Num-1
Código:
  mpz_init(d);
  mpz_init(NumDec);
  mpz_sub_ui(NumDec,Num,1); //NumDec=Num-1
  mpz_set(d,NumDec); // d=Num-1

  s = 0;
  while ( mpz_even_p(d) ) {  //mientras d sea par
    mpz_fdiv_q_2exp(d, d, 1); // d=d/2
    s++;
  }
Hasta aquí todo bien. Si llego hasta aquí es que el número a comprobar no es divisible entre los primeros 10.000 primos y he obtenido un valor R y S que requiere MillerRabin

Inicializo valores aleatorios (la semilla)
Código:
gmp_randstate_t semilla; 
gmp_randinit_default(semilla);
gmp_randseed_ui (semilla, time(NULL));

Inicializo algunos valores que necesito
Código:
mpz_init(ValorAleat);
mpz_init(ValorAux);
mpz_init(ValorTemp);
mpz_sub_ui(ValorTemp,Num,4); //ValorTemp=num-4

Aquí comienza el bucle de comprobación. Como dije MillerRabin tiene un factor de error y para asegurarnos que la respuesta es correcta en vez de hacer el test una vez lo hacemos varias. En mi caso 10 porque llamé a la función MillerRabin con el parámetro Comprobaciones=10.

Lo de EsPrimo es un valor boleano. Si antes resultó que es divisible entre algún número primo que no haga el bucle y se vaya al final.
Código:
while ( Comprobaciones-- > 0 && EsPrimo) {
    //Obtener un valor aleatorio en ValAleatorio entre 2 y Num-2
    mpz_urandomm(ValorAleat,semilla,ValorTemp); //Obtener un valor aleatorio entre 0 y num-4
    mpz_add_ui(ValorAleat,ValorAleat,2); // ValorAleat=ValorAleat+2

// Calcular ValorAux=ValorAleat^d mod Num
    mpz_powm(ValorAux,ValorAleat,d,Num);

    if ( mpz_cmp_ui(ValorAux, 1) == 0 ) { //si valoraux=1 es probable primo
         EsPrimo=ES_PRIMO; // es primo pero hay que comprobar mas
    } else {
         EsPrimo=NO_ES_PRIMO; //de momento no es primo.
    }
    if ( !EsPrimo && mpz_cmp(ValorAux, NumDec) == 0 ) { //si valoraux= Num-1 probable primo
         EsPrimo=ES_PRIMO; //de momento es primo pero hay que comprobar mas
    } else {
         EsPrimo=NO_ES_PRIMO; //de momento no es primo.
    }

    if ( !EsPrimo ) { //si antes fue visto como no primo
       for(r=0; r < s-1; r++) {     
          mpz_powm_ui (ValorAux, ValorAux, 2, Num);  //ValorAux=ValorAux^2 mod Num         
          if ( mpz_cmp_ui(ValorAux,1) == 0) {  // si ValorAux=1 es compuesto
             EsPrimo=NO_ES_PRIMO;
             break;
          }
       }
       if ( mpz_cmp(ValorAux,NumDec) != 0 ) { //si ValorAux<>Num-1 no es primo
             EsPrimo=NO_ES_PRIMO;
       }
       
       if ( !EsPrimo ) {
          break;
       }
    }   
  } //fin del while
Ahora al final solo queda devolver el resultado EsPrimo que será verdadero o falso y limpiar memoria

 
Código:
mpz_clear(ValorAux);
  mpz_clear(ValorTemp);
  mpz_clear(d);
  mpz_clear(NumDec);
  mpz_clear(ValorAleat);

  return (EsPrimo);
}

Pues no me funciona y no veo la razón. Se que estoy muy cerca pero hay algo que se me escapa.
Ese código se puede optimizar mucho. Lo he puesto así porque se ven mas claros los pasos que doy para seguir a MillerRabin.
3  Programación / Programación C/C++ / ¿Como se trabaja con big integers en C? en: 14 Octubre 2010, 21:11 pm
Pues eso.

¿Como defino en C un tipo bigint o similar que admita números grandes? ¿hay alguna librería? ¿como se hace?
4  Programación / Programación Visual Basic / Visual Basic en LInux en: 10 Septiembre 2006, 22:37 pm
Hola
Solo recomendar a quienes esteis interesados en visual basic que probeis GANBAS que es el lenguaje de vb para linux con soporte directo para mysql, sql server, oracle, ... y que es realmente bueno, estable y rápido.

El lenguaje es básicamente el mismo aunque no tiene las tiranías de microsoft de ocx o las apis puesto que son cosas que en linux no tienen sentido.

¡Merece la pena!
5  Programación / Programación Visual Basic / Manuales, tutoriales y ejemplos en: 10 Septiembre 2006, 21:52 pm
Aquí van enlaces a manuales, tutoriales o ejemplos que por estar bien explicados, bien documentados o ser claros merecen la pena estar destacados.

Próximamente integraré los enlaces y documentación en el hilo de Necro y agregaré divesa documentación que ha ido quedando enterrada puesto que al no haber moderados a veces ocurrió que hilos valiosos quedaran enterrados.

Conceptos básicos


Las APIS de Windows


Comunicaciones


Conceptos avanzados

6  Programación / Programación Visual Basic / Rutinas Interesantes en: 10 Septiembre 2006, 21:22 pm
Hola
Voy a ir poniendo aquí rutinas que son interesantes por distintas razones.

Los que sepais de rutinas interesantes que agregar aquí mandarme un MP con el enlace puesto que este hilo estará bloqueado para impedir que se llene de basura.

Son bienvenidas rutinas sobre los siguientes temas:
a) temas de acceso a bases de datos
b) temas de comunicaciones (email, irc, web, ftp, sockets en general, ..., etc).
c) temas de control de la máquina y obtención de recursos (acceso y control de servicios, acceso y control de programas, instaladores, etc)
d) temas de control de dispositivos (informes, acceso a la impresora, .., etc)
e) Temas de acceso a las APIS
f) temas de acceso al registro y archivos INI
g) temas de creación y acceso a Logs

Aquí solo rutinas interesantes.

Como ejemplo este enlace de trucos visual basic
Trucos visual basic
http://www.elhacker.net/trucosvisual.htm

Un saludo
7  Programación / Scripting / Tutorial programación BAT en: 22 Julio 2006, 00:04 am
Hola

Para los nuevos (los interesados en este tema ya lo habreis visto probablemente)

Tutorial programación.bat (el manual)
http://www.elhacker.net/ProgramacionBat.htm

Y luego el hilo
Tutorial programación BAT
http://foro.elhacker.net/index.php/topic,18148.0.html

Mira que venir todos los dias y no enterarme que estaba esto jajaja

 ;D

¡¡¡ Y yo con estos pelosssss !!!!
8  Programación / Scripting / Hey!!! ¡Que no había visto yo este subforooooo!!!! en: 21 Julio 2006, 23:59 pm

Que guay!!!
 ;D
9  Media / Juegos y Consolas / Comerciar en Ogame en: 19 Noviembre 2005, 11:46 am
600.000 cristal en universo 11
400.000 deuterio en universo 11

Necesito metal.

Para hacer el cambio me guió por los siguientes principios:
a) Yo entrego la mercancía primero y cuando veais lo que os he enviado me devolveis la cantidad correspondiente.
b) Para valorar la mercancía pongo la regla de que 3 unidades de metal equivalen a 2 de cristal y a 1 de deuterio.

Así que ya sabeis, quien quiera cristal o deuterio solo tiene que darme metal a cambio.

Un saludo
10  Programación / Ingeniería Inversa / loving ingeniería inversa!!! en: 13 Noviembre 2005, 14:27 pm
Hola
Esta es una materia que siempre he ignorado. No por nada, es que la informática es muy amplia y siempre he prestado atención a otras cosas

Sin embargo hace unos dias he empezado a interesarme por este tema. No por nada en especial, no aspiro a andar crackeando cada cosa, pero me gusta el reto de conseguir crackear un programa y creo que tengo cosas que aprender por aquí.

Para situarme: me muevo con soltura en windows y linux, conozco ensamblador (aunque lo tengo muy olvidado), C, C++ y algunos otros lenguajes que no creo que vengan al caso.

El caso es que estoy leyendo los hilos y no se bien por donde empezar.No se que herramientas necesito y tampoco que tipo de información debo buscar en google para ir documentándome.

Como veis mi ignorancia en este tema es total xDDDD, pero quizá eso cambie en algún tiempo.

He decidido empezar por un video de motos que me dieron y que mola mazo, pero ahora pide usuario y clave (me la dieron en su dia, pero ya no funciona). Es un reto como otro cualquiera

Agradecería cualquier sugerencia o idea para ir aprendiendo a hacer estas cosas y rodearme de las herramientas apropiadas xDDDDD.

Un saludo
Páginas: [1] 2 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines