begin process at 2012 02 11 01:33:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Algorithme

 > 

Compression, Split et Cryptage

 > 

traduction ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

traduction ???

dimanche 2 mars 2008 à 09:00:38 | traduction ???

greg38bj

bonjour à tous
Je galère sur la traduction d'un code que l'on m'a dit être en delphi
lorsque j'essaye, j'obtiens des erreurs un peu partout
je develloppe en vb2005.
est ce qu'une personne calée en delphi et en vb pourrait m'aider à traduire ce code s'il vous plait ? :

var Buffer : array[0..2097151] of byte; // Max size of a flash


function Get4Bytes(adr:longword):longword;
begin
  Result:=Buffer[adr] shl 24 + Buffer[adr+1] shl 16 + Buffer[adr+2] shl 8 + Buffer[adr+3];
end;


function BufferGetString(adr:longword):string;
var i:integer;
begin
   i:=0;
   Result:='';
   while (i<16) and (buffer[adr+i]<>0) do
    begin
     Result:=Result+chr(buffer[adr+i]);
     inc(i);
    end;
end;

function TFormMain.CalculateCRC(Start,Stop:longword):longword;
var CRC : longword;
    i:integer;
begin
   i:=Start;
   CRC := $FFFFFFFF;
   while (i <= Stop) do
      begin
       CRC := (CRC shl 8) xor (CRC_table[buffer[i] xor (CRC shr 24)]);
       inc(i);
      end;
   Result := CRC;
end;


procedure TFormMain.FixCRC;
var BlockID,offset,len,crc,newCRC:longword;
    ptr:longword;
    s:string;
begin
  Generate_CRC_Table(FidMergerSeed);
  Memo.Lines.Add('CRC Table Calculated!');
  ptr:=0;
  BlockID:=Get4Bytes(ptr);
  Memo.Lines.Add('BlockID = '+inttohex(BlockID,8));
  if BlockID = $E3000010 then
    begin
      Memo.Lines.Add('Boot loader -> NO CRC');
      Buffer[12]:=ord('N');
      Buffer[13]:=ord('C');
      Buffer[14]:=ord('R');
      Buffer[15]:=ord('C');
    end;
  offset:=Get4Bytes(ptr+8);
  ptr:=offset;
  // check for rest
  while (PTR+16 < BinSize) do
    begin
      BlockID:=Get4Bytes(ptr);
      len:=Get4Bytes(ptr+4);
      offset:=Get4Bytes(ptr+8);
      CRC:=Get4Bytes(ptr+12);
      s:='BlockID = '+inttohex(BlockID,8);
      s:=s+' SIZE = '+inttohex(len,8);
      s:=s+' OFFSET = '+inttohex(offset,8);
      s:=s+' Actual CRC = '+inttohex(crc,8);
      Memo.Lines.Add(s);
      s:='Bloc Name = '+BufferGetString(ptr+16);
      s:=s+' Version = '+BufferGetString(ptr+32);
      s:=s+' Date = '+BufferGetString(ptr+48);
      Memo.Lines.Add(s);
      newcrc:=CalculateCRC(ptr+16,ptr+16+len-1);
      s:='Calculate CRC = ' + inttohex(newcrc,8);
      if newCRC = CRC then
        s:=s+' - CRC OK!'
      else
        s:=s+' - CRC FAIL!';
      memo.Lines.Add(s);
      // Fix CRC
      if offset=0 then
       ptr:=ptr+len
      else
       ptr:=ptr+offset;
    end;


cet algo permet le decryptage du crc de plusieurs fichiers sur lesquels je bosse en ce moment
merci encore

@+
greg38bj
lundi 3 mars 2008 à 20:51:01 | Re : traduction ???

cantador

Membre Club Administrateur CodeS-SourceS
çà c'est pour foxi.

cantador
lundi 3 mars 2008 à 21:26:05 | Re : traduction ???

greg38bj

merci de porter interêt à ma question
Casy m'a répondu sur vbfrance
maintenant, je n'ai plus qu'à essayer de résoudre les bugs dûs au vb

@+
greg38bj


Cette discussion est classée dans : buffer, ptr, begin, crc, longword


Répondre à ce message

Sujets en rapport avec ce message

Bass Dsp [ par Nicolas___ ] Voila , je ne sais pas si l'idée va marcher mais bon je tente le coup A tous les passionnés de sons et de la librairie Bass (www.un4seen.com) ,Ayant d Png Scanline [ par AgentAmine ] Salut je veut changer les valeur rgb et l'alpha d'une image png en utilisant scanline ..c'est plus rapide que GetDIBits et SetDIBits, la probleme et Un petit Proxy fait maison [ par beloubelou ] Bonjour, Ce petit programme fonctionne comme un proxy. Il utilise deux composants delphi: THttpserver de FPiette et TAlWinhttp de Alcinone. Le premi Ou est l'erreur ? [ par ferdo ] bonjour a tous Ou est l'erreur svp ?? begin IF calendrier then calendrier := false; Label6.Caption := 'Calendrier ' ; else begin Intervertir 2 strings [ par Christophe67 ] Bonjour, J'aimerai savoir s'il existe une fonction en Delphi qui permet d'intervertir 2 strings String1 String2 sans passer par un buffer String1 Pascal-Delphi - Function-Procedure [ par axelvdk ] Bonjour aimable samaritain, Je voudrais faire tourner ce programme mais le compilateur me dit : undeclared identifier "dico". Que puis-je faire ? executé scripte sql sous delphi [ par didinedz ] bonsoir les amis ,voila je debute en delphi et jai du mal a executer se scripte le quel doit mafficher des information du table sql procedure TForm2 Fonction qui retourne une autre valeur !! [ par grandyaka54 ] Bonjour à tous, J'ai un problème sur lequel je ne m'explique pas. Ma fonction Crypt(Maintenant, '.cry'); que j'utilise dans la fonction btnCryptageCl résolution sudoku backtrack [ par zwyx ] Bonjour à tous, Pour ceux qui aiment bien se creuser la tête sur de l'algorithmie... J'ai écrit un code permettant de résoude une grille de sudoku ré Aides pour les classes. [ par Hrivion ] Bonjour, Je poste ici car je code


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales