Ir para conteúdo

PmoshBR

Membros
  • Postagens

    2
  • Registro em

  • Última visita

Posts postados por PmoshBR

  1. Ola Fernando,

    Obrigado pela ajuda, não conhecia o IDR... foi rodar ele e achar na hora a localização da String, muito bom esse software...
    Usei o x64dbg e realmente confirmei a localização da string...

    Agora só falta uma coisa, qual programa posso usar para alterar a string e salvar o exe corrigido? pois a quantidade de caracteres não são iguais... teria que alterar o tamanho do arquivo...

    Estou gostando bastante do curso CERO...!!

    Abraço e obrigado pela resposta...

  2. Ola pessoal, 

    Tenho um aplicativo que desenvolvi a muito tempo (2003) no Delphi que utilizo diariamente, porem a um ano atrás meu HD de backup (onde estava o código fonte) pifou e não consegui restaurar 100% dos arquivos desse código fonte, apenas arquivos parciais.
    Já com a ideia de que vou ter que reescrever todo o programa de novo, já comecei o projeto em uma outra plataforma. Mais ainda vai demorar até estar 100%. Enquanto isso vou usando a ultima versão compilada.

    Precisava de uma ajuda para alterar um PATH onde o programa salva e lê arquivos na rede, que foi compilada dentro da linha de código. a função em questão seria essa abaixo:
    (Esse foi um dos arquivos do código fonte que consegui recuperar)

    procedure TFrm_EntDocumentos.BtAdicionarClick(Sender: TObject);
    var
    nomefinal,pathfinal:string;
    ano,mes,dia,hora,minuto,segundo,extensao:string;
    begin
        hora:=Copy(TimeToStr(Time),0,2);
        minuto:=Copy(TimeToStr(Time),4,2);
        segundo:=Copy(TimeToStr(Time),7,2);
        hora:=Copy(TimeToStr(Time),0,2);
        ano:=Copy(DateToStr(Date),7,4);
        mes:=Copy(DateToStr(Date),4,2);
        dia:=Copy(DateToStr(Date),0,2);
        extensao:=ExtractFileExt(EdNomeArquivo.Text);
        nomefinal:=ano+mes+dia+'-'+hora+minuto+segundo+'-'+EdPedido.Text+'-'+InttoStr(Random(100))+extensao;
        pathfinal:='\\SERVIDOR\producao$\'+EdTipoArquivo.Text+'\'+nomefinal;
      try
        if EdTipoArquivo.Text='CVC' then
        begin
          Dm.SQLComando.ConnectionString:=Dm.SQLCvc.ConnectionString;
          DM.SQLComando.CommandText:=('INSERT INTO TbArquivos (NomeArquivo, CodModVeiculo) VALUES ('+
            #39+nomefinal+#39+','+
            #39+EdPedido.Text+#39+');');
          DM.SQLComando.Execute;
        end else
        begin
          Dm.SQLComando.ConnectionString:=Dm.SQLProducao.ConnectionString;
          DM.SQLComando.CommandText:=('INSERT INTO TbArquivos (CodPedido, Data, ' +
            'NomeArquivo, Observacao, Tipo) VALUES ('+
            #39+EdPedido.Text+#39+','+
            #39+ano+'/'+mes+'/'+dia+#39+','+
            #39+nomefinal+#39+','+
            #39+MObservacao.Lines.Text+#39+','+
            #39+EdTipoArquivo.Text+#39+');');
          DM.SQLComando.Execute;
        end;
        if EdTipoArquivo.Text='PRE-CADASTRO IMPLEMENTO' then
        begin
          Dm.SQLComando.ConnectionString:=Dm.SQLProducao.ConnectionString;
          DM.SQLComando.CommandText:=('UPDATE TbProducao SET Pre_Cadastro = 1 WHERE CodPedido = '+#39+EdPedido.Text+#39);
          DM.SQLComando.Execute;
        end;
        try
          FileSetReadOnly(EdNomeArquivo.Text,true);
          if CBMover.Checked then
          begin
            if not MoveFile(PChar(EdNomeArquivo.Text),PChar(pathfinal)) then
              raise Exception.Create('Erro ao tentar salvar o arquivo!');
          end else
            if not CopyFile(PChar(EdNomeArquivo.Text),PChar(pathfinal),False) then
              raise Exception.Create('Erro ao tentar salvar o arquivo!');
        except
          DM.SQLComando.CommandText:=('DELETE FROM TbArquivos WHERE NomeArquivo = '+#39+nomefinal+#39);
          Dm.SQLComando.Execute;
          raise Exception.Create('Erro ao tentar salvar o arquivo!');
        end;
      except
        on E : Exception do
        begin
          ShowMessage('Tipo do Erro = '+E.ClassName+#13+'Messagem do Erro = '+E.Message);
        end else ShowMessage('Erro desconhecido!');
      end;
    end;

    No começo da função tem a variável "pathfinal" e esta direcionando os arquivos para o diretório \\SERVIDOR\producao$, queria poder alterar esse path, pois a topologia da rede aqui foi alterada e não existe mais esse caminho.

    Já tentei utilizar os programas abaixo para tentar achar a "string" para modifica-la no executável, mais sem sucesso.

    • Win32dasm
    • dede32
    • Resource Hacker
    • Hex-Rays IDA Pro
    • Ollydbg
    • Hiew32

    Não sou um conhecedor de assembly de PC x86 ou x64, inclusive estou assistindo os cursos aqui do site para ver se ajuda. Mais tenho conhecimento de asm de microcontroladores com PIC e Atmel.

    Alguém poderia me dar uma luz de como alterar esse executável ?? precisava resolver isso enquanto o novo programa não fica pronto....

    Obrigado!!!!

×
×
  • Criar Novo...