Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.700
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
De todas formas, el ficherito que has puesto de muestra parece que no está cifrado, se puede leer nombres y otros datos, así que en este caso es simplemente un archivo binario con una estructura que hay que conocer.
Bueno, eso es lo que parece.
Responder Con Cita
  #2  
Antiguo 16-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
En un primer análisis, podemos separar el archivo en lo que, según la documentación que enlazo Casimiro, se denominan "Archivos elementales". Estos están formados por una "cabecera" y un bloque de datos.

Algo así (es una aplicación de consola):
Código Delphi [-]
program Tacografo;

{$APPTYPE CONSOLE}

uses
  Windows, Sysutils, Classes;

type
  TCabecera = packed record
    FID: Word;
    Tipo: Byte;
    Longitud: Word;
  end;

function FIDToStr(FID: Word): String;
begin
  case FID of
    $0002: Result:=  'ICC';
    $0005: Result:=  'IC';
    $0500: Result:=  'Application identification';
    $C100: Result:=  'Card certificate';
    $C108: Result:=  'CA certificate';
    $0520: Result:=  'Identification';
    $050E: Result:=  'Card download';
    $0521: Result:=  'Driving license info';
    $0502: Result:=  'Events data';
    $0503: Result:=  'Faults data';
    $0504: Result:=  'Driver activity data';
    $0505: Result:=  'Vehicles uses';
    $0506: Result:=  'Places';
    $0507: Result:=  'Currents usage';
    $0508: Result:=  'Control activity data';
    $0522: Result:=  'Specific conditions';
    else
      Result:= 'Identificador desconocido';
  end;
end;

var
  Cabecera: TCabecera;
  Datos: PByte;
begin
  if ParamCount > 0 then
  try
    with TFileStream.Create(ParamStr(1),fmOpenRead or fmShareDenyWrite) do
    try
      Writeln('Analizando el fichero: ' + ParamStr(1));
      GetMem(Datos,$FFFF);
      try
        while Read(Cabecera,Sizeof(Cabecera)) = Sizeof(Cabecera) do
        begin
          Cabecera.FID:= Swap(Cabecera.FID);
          Cabecera.Longitud:= Swap(Cabecera.Longitud);
          Writeln;
          Writeln('FID: ' + IntToHex(Cabecera.FID,4));
          Writeln('Descripcion: ' + FIDToStr(Cabecera.FID));
          Writeln('Longitud: ' + IntToStr(Cabecera.Longitud) + ' Bytes');
          FillChar(Datos^,$FFFF,#0);
          ReadBuffer(Datos^,Cabecera.Longitud);
        end;
      finally
        FreeMem(Datos);
      end;
    finally
      Free;
    end;
  except
    On E: Exception do
      Writeln('Error: ' + E.Message);
  end else
    Writeln('Uso: ' + ParamStr(0) + ' < archivo >');
end.

El resultado de procesar el archivo de ejemplo:
Código:
FID: 0002
Descripcion: ICC
Longitud: 25 Bytes

FID: 0005
Descripcion: IC
Longitud: 8 Bytes

FID: 0501
Descripcion: Identificador desconocido
Longitud: 10 Bytes

FID: 0501
Descripcion: Identificador desconocido
Longitud: 128 Bytes

FID: 0520
Descripcion: Identification
Longitud: 143 Bytes

FID: 0520
Descripcion: Identification
Longitud: 128 Bytes

FID: 0502
Descripcion: Events data
Longitud: 1728 Bytes

FID: 0502
Descripcion: Events data
Longitud: 128 Bytes

FID: 0503
Descripcion: Faults data
Longitud: 1152 Bytes

FID: 0503
Descripcion: Faults data
Longitud: 128 Bytes

FID: 0504
Descripcion: Driver activity data
Longitud: 13780 Bytes

FID: 0504
Descripcion: Driver activity data
Longitud: 128 Bytes

FID: 0505
Descripcion: Vehicles uses
Longitud: 6202 Bytes

FID: 0505
Descripcion: Vehicles uses
Longitud: 128 Bytes

FID: 0506
Descripcion: Places
Longitud: 1121 Bytes

FID: 0506
Descripcion: Places
Longitud: 128 Bytes

FID: 0508
Descripcion: Control activity data
Longitud: 46 Bytes

FID: 0508
Descripcion: Control activity data
Longitud: 128 Bytes

FID: 0522
Descripcion: Specific conditions
Longitud: 280 Bytes

FID: 0522
Descripcion: Specific conditions
Longitud: 128 Bytes

FID: C100
Descripcion: Card certificate
Longitud: 194 Bytes

FID: C108
Descripcion: CA certificate
Longitud: 194 Bytes
Ahora lo que necesitaríamos es saber la estructura de cada uno de esos bloques de datos.

Última edición por seoane fecha: 16-05-2007 a las 17:42:39.
Responder Con Cita
  #3  
Antiguo 16-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Investigando un poco mas encontré esta pagina donde te puedes descargar un pdf con la estructura de cada uno de esos bloques de los que hablaba.

http://www.boe.es/g/es/bases_datos/d.../81422&codmap=

Son mas de 200 paginas, así que me parece que yo lo dejo aquí.
Responder Con Cita
  #4  
Antiguo 18-05-2007
socger socger is offline
Miembro
 
Registrado: jun 2004
Posts: 89
Poder: 23
socger Va por buen camino
Gracias seoane ... pero tengo esta duda

No he usado nunca este tipo de ficheros, lo cual es un problema para mí. Podrías documentarme ... alguna ayuda o link ... donde pueda ver como se trabajan con los ficheros de este tipo

---
cita tuya:

type
TCabecera = packed record
FID: Word;
Tipo: Byte;
Longitud: Word;
end;

---

Y aún documentándome he visto que estos ficheros elementales que vienen ahora dependen o se crean con la longitud que se consiga en el campo Longitud de tipo Word que creastes, es decir que cambian su longitud debido al campo Longitud.

¿Serías tan amable de por lo menos decirme como crearlo en TCabecera?

No se como ayudarte, en la medida que yo pudiera, pero te garantizo que esta ayuda que me prestas me va a hechar un buen cable. De todos modos me presto para lo que hiciera falta.

Saludos

Última edición por socger fecha: 18-05-2007 a las 09:56:45.
Responder Con Cita
  #5  
Antiguo 18-05-2007
socger socger is offline
Miembro
 
Registrado: jun 2004
Posts: 89
Poder: 23
socger Va por buen camino
Perdón. Es un fallo

Perdón es un fallo.

Gracias a todos por la ayuda. No se por donde habría tirado sin vuestra ayuda, la de todos.

Ya voy encontrando cielos abiertos gracias a vosotros.

Pero como he comentado en la anterior consulta sigo con problemas. No conozco los ficheros de este tipo. Podríais ver la nota anterior y comentarme que hacer.

Gracias
Responder Con Cita
  #6  
Antiguo 18-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por socger
Pero como he comentado en la anterior consulta sigo con problemas. No conozco los ficheros de este tipo. Podríais ver la nota anterior y comentarme que hacer.
No entiendo tu pregunta. En mi código no utilizo ficheros con tipo, no tendría mucho sentido, ya que los registros tienen un tamaño variable. Lo que si sabemos es que cada "elemento" del fichero tiene el mismo encabezado, y si que tenemos el tamaño de ese encabezado.

Así que lo que hago es leer el encabezado, determinar el tamaño de los datos y leerlos. Si te fijas en la siguiente instrucción:
Código Delphi [-]
  ReadBuffer(Datos^,Cabecera.Longitud);
Leemos en el buffer "Datos", el contenido de ese bloque. Una vez en memoria, ya veras tu lo que tienes que hacer con el. En el enlace que te di, parece que explican la estructura de cada uno de estos bloques, pero sus mas de 200 paginas me desaniman bastante a leerlo.

Si me permites un consejo, creo que, si no estas familiarizado con el tratamiento de ficheros y el de estructuras en memoria, el proyecto puede que te resulte demasiado complicado. La parte que yo puse es lo mas básico, luego viene interpretar cada bloque, y ya no hablemos de la parte de cifrado ....
Responder Con Cita
  #7  
Antiguo 18-05-2007
socger socger is offline
Miembro
 
Registrado: jun 2004
Posts: 89
Poder: 23
socger Va por buen camino
Gracias SEONAME

Sobre tu cita:

--------------------------------------------------------------------
Si me permites un consejo, creo que, si no estas familiarizado con el tratamiento de ficheros y el de estructuras en memoria, el proyecto puede que te resulte demasiado complicado. La parte que yo puse es lo mas básico, luego viene interpretar cada bloque, y ya no hablemos de la parte de cifrado ....
---------------------------------------------------------------------

Si es cierto no estoy familiarizado con esta estructura de ficheros que usas fileStream ni con estructuras en memoria (aunque aprendo rápido), por eso te pedí algun link o documento que me familiarizase sobre esta estructura de datos. Y bueno por eso te seguiría pidiendo que me documentases el paso a seguir para aprender más sobre todo esto.

En cuanto al cifrado de datos este boe que me pasastes, a poco que estoy viendo, es bastante extenso y poco documentativo. Pero espero que superando la primera parte que te comenté antes me pase rápidamente a la siguiente.

Chaval, muchas gracias de todos modos y lo dicho me teneis para lo que os haga falta en este foro. De momento voy a seguir subiendo todo lo que vaya descubriendo sobre este tema.

Saludos, pero antes agradezco toda ayuda suministrada.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Huellas Digitales Viky Varios 6 17-01-2007 18:38:18
Atacar el ToolBarWindows32 mangi API de Windows 0 28-04-2006 13:07:58
Atacar cartografías tipo Map Point o NafTec socger Varios 3 23-12-2005 10:04:09
¿Con .Net que bases de datos puedo atacar y como??? burasu .NET 4 17-09-2005 12:16:05
Atacar tablas Paradox con ADO. Chojj Conexión con bases de datos 2 02-07-2003 20:50:12


La franja horaria es GMT +2. Ahora son las 23:13:24.


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