Fórum Avast detecta falso virus na rotina em delphi #529457

21/08/2015

0

Olá pessoal!


O antivirus Avast detecta falso vírus na rotina abaixo:

class function TCriptografia.Decode(Valor: string): string;
var
  nTamanhoChave : Integer;
  nPosicaoChave : Integer;
  nValorRandom  : Integer;
  sRetorno      : String;
  nPosicaoValor : Integer;
  nPosicaoAsc   : Integer;
  nTmpSrcAsc    : Integer;
  nTamanho      : Integer;

begin

  if (Valor = '') Then
  begin
    Result:= '';
    Exit;
  end;
  sRetorno      := '';
  nTamanhoChave := Length(Chave);
  nPosicaoChave := 0;
  nPosicaoValor := 0;
  nPosicaoAsc   := 0;
  nTamanho      := 256;
  nValorRandom  := StrToInt('$' + copy(Valor,1,2));
  nPosicaoValor := 3;
  repeat
    nPosicaoAsc := StrToInt('$' + copy(Valor,nPosicaoValor,2));
    if (nPosicaoChave < nTamanhoChave) Then
      nPosicaoChave := nPosicaoChave + 1
    else
      nPosicaoChave := 1;
    nTmpSrcAsc := nPosicaoAsc Xor Ord(Chave[nPosicaoChave]);
    if nTmpSrcAsc <= nValorRandom then
      nTmpSrcAsc := 255 + nTmpSrcAsc - nValorRandom
    else
      nTmpSrcAsc  := nTmpSrcAsc - nValorRandom;
    sRetorno      := sRetorno + Chr(nTmpSrcAsc);
    nValorRandom  := nPosicaoAsc;
    nPosicaoValor := nPosicaoValor + 2;
  until (nPosicaoValor >= Length(Valor));
  Result:= sRetorno;

end;



Mais precisamente na linha:

    nTmpSrcAsc := nPosicaoAsc Xor Ord(Chave[nPosicaoChave]);


Como posso resolver isso?
Carlos Phelippe

Carlos Phelippe

Responder

Post mais votado

21/08/2015

Resolvido.

poderia haver um estouro no tipo integer. Coloquei int64.

Carlos Phelippe

Carlos Phelippe
Responder

Gostei + 1

Mais Posts

21/08/2015

Rodrigo Oliveira

Esse antivirus é fogo! Troque, é melhor.
Responder

Gostei + 0

21/08/2015

Carlos Phelippe

Pior que meu cliente tem esse comprado :(
Responder

Gostei + 0

21/08/2015

Rodrigo Oliveira

Eita, complicou hein! Será que alguem já passou por isso?
Responder

Gostei + 0

21/08/2015

Rodrigo Oliveira

O que fez?
Responder

Gostei + 0

21/08/2015

Carlos Phelippe

Coloquei todos como int64.

nTmpSrcAsc : int64;
nTamanho : int64;
Responder

Gostei + 0

21/08/2015

Rodrigo Oliveira

Somente isso? Obrigado por postar a solução.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar