Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 21-10-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Fíjate en este código usando char* y funciones C:

Código PHP:
bool FuerzaBruta(charSerialcharSalidacharRango)
{
  
int L strlen(Serial);
  
int R strlen(Rango);
  
int n;
  for(
n=0n<Ln++) Salida[n] = *Rango;
  
Salida[n] = 0;
  for(
n=0n<Ln++){
    for(
int r=0r<Rr++){
      
Salida[n] = Rango[r];
      if(
Salida[n] == Serial[n]) break;
    }
  }
}
//--------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
   
charRango "0123456789ABCDEF";
   
charSerial "FAAF"//Cadena hexa a buscar. No puede ser mayor que "FFFFFFFF"
   
charSalida = new char[strlen(Serial)+1];

   
bool retval;
   
bool error=false//bandera para la verificacion de la cadena
   
double tiempoInicialtiempoFinal;

   
//Podemos asegurarnos de que el valor de cadena es hexa antes de seguir para evitar problemas
   
for(int i 0strlen(Serial) && error != truei++)
   {
      if(!
isalnum(Serial[i])){
         
ShowMessage(AnsiString().sprintf("La cadena %s no es hexadecimal"Serial));
         
error true;
      }
   }

   
//Tambien deberiamos asegurarnos de que el largo de la cadena no exceda del maximo
   
if(strlen(Serial) > 8)
   {
      
ShowMessage(AnsiString().sprintf("El largo de cadena excede del largo máximo.\nLargo actual: %d\nLargo máximo permitido: %d"strlen(Serial),8));
      
error true;
   }

   if(
error != true//Si no se produjo ningun error seguimos adelante
   
{
      
Form1->WindowState wsMinimized//Minimizamos el form para que el usuario no pueda pulsar el boton ni nada

      
tiempoInicial GetTickCount(); //Obtenemos el tiempo de entrada

      
retval FuerzaBruta(SerialSalidaRango);

      if(
retval == false){ //Si no se encontró avisamos
         
ShowMessage("No se encontró el valor");
      }else{
         
tiempoFinal GetTickCount(); //obtenemos el tiempo de salida

         
ShowMessageAnsiString().sprintf"Valor hexadecimal: %s\n"
                                            "Se han tardado %s segundos en encontrarlo."
,
                                            
SalidaFormatFloat("0.000",(tiempoFinal tiempoInicial) /1000)));
      }
      
Form1->WindowState wsNormal//volvemos a restaurar el form
   
}
   
delete [] Salida;


Saludos.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Seleccionar un determinado rango de caracteres en un memo ErikMdqqq C++ Builder 7 02-08-2013 03:51:49
Es posible crear bucle controlado José Luis Garcí Varios 5 05-07-2011 10:04:54
Crear codigo de Fuerza Bruta kurono Varios 12 31-01-2011 16:46:26
Como crear un bucle con TEdit's axlrafael OOP 12 08-05-2008 19:22:48
Cerrar Form "fuerza bruta" MaMu Varios 3 22-05-2007 19:59:50


La franja horaria es GMT +2. Ahora son las 00:05:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi