Fórum Chave Binária no RegEdit #331235

16/10/2006

0

Salve amigos... wana wanga!!!

Estou com problemas para criar uma chave binária no Registro do Windows.

Vamos la, na empresa usamos o Remote Anything, conhecido como RA (semelhante ao WinVNC) pra controlar os clientes, acontece que sempre tem um expertinho que usa um utilitário de remoção e remove o processo SLAVE.

Ja consegui fazer um programa no Delphi que, reinstala o Slave automaticamente, usando aqueles resources compilados junto com o .exe, crio pelo Delphi as chaves do registro que são necessárias, acontece que a senha é criptografada e armazenada em chave binária (REG_BINARY)

tentei copiar o codigo Hexa referente ao password e gravar da seguinte forma no Delphi

var
  pass : integer;
...
pass := $00+$A3+$E1............;


depois usei:

reg.WriteBinaryData(´Password´,pwd,SizeOf(pwd));


Acontece que não funciona, e o problema está nessa chave binária. Segui uns tópicos que encontrei aqui no forum. Será que alguém pode me dar uma ajuda


Eniorm

Eniorm

Responder

Posts

17/10/2006

Eniorm

Amigos, resolvi como gravar a senha criptografada em chave binária no Registro do Windows.

A chave do Registro, exportada:
"Password"=hex:a8,f8,64,2d,71,51,49,fb,fc,9b,76,d7,60,a3,6c,0b,7f,3f,e0,ea,cb,\
  26,40,5d,b4,3d,ed,36,b0,6e,8b,45,00,a3,d2,77




procedure TF_Bloqueio.InstalaSlave;
var
  res : TResourceStream;
  reg : TRegistry;
  pwd : array[0..35] of byte;
begin
  try
    res := TResourceStream.Create(HInstance, ´EXE_SLAVE´, ´SLAVE´);
    res.SaveToFile(´c:\windows\slave.exe´);
  finally
    res.Free;
  end;

  pwd[0] := $a8;
  pwd[1] := $f8;
  pwd[2] := $64;
  pwd[3] := $2d;
  pwd[4] := $71;
  pwd[5] := $51;
  pwd[6] := $49;
  pwd[7] := $fb;
  pwd[8] := $fc;
  pwd[9] := $9b;
  pwd[10] := $76;
  pwd[11] := $d7;
  pwd[12] := $60;
  pwd[13] := $a3;
  pwd[14] := $6c;
  pwd[15] := $0b;
  pwd[16] := $7f;
  pwd[17] := $3f;
  pwd[18] := $e0;
  pwd[19] := $ea;
  pwd[20] := $cb;
  pwd[21] := $26;
  pwd[22] := $40;
  pwd[23] := $5d;
  pwd[24] := $b4;
  pwd[25] := $3d;
  pwd[26] := $ed;
  pwd[27] := $36;
  pwd[28] := $b0;
  pwd[29] := $6e;
  pwd[30] := $8b;
  pwd[31] := $45;
  pwd[32] := $00;
  pwd[33] := $a3;
  pwd[34] := $d2;
  pwd[35] := $77;

  try
    reg := TRegistry.Create;
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey(´SOFTWARE\TWD\Remote-Anything´,True);

    reg.WriteString(´Accept Connections´,´1´);
    reg.WriteString(´Allow Options´,´0´);
    reg.WriteString(´Allowed IP Addresses´,´255.255.255.255 ´);
    reg.WriteString(´Close All´,´1´);
    reg.WriteString(´EMailAddress´,´´);
    reg.WriteString(´EMailServer´,´´);
    reg.WriteString(´Filter Manually´,´0´);
    reg.WriteString(´Gateway´,´1´);
    reg.WriteString(´Log File´,´0´);
    reg.WriteString(´NotifyIPAddress´,´0´);
    reg.WriteBinaryData(´Password´,pwd,SizeOf(pwd));
    reg.WriteString(´Port´,´4000´);
    reg.WriteString(´sDS´,´´);
    reg.WriteString(´sDS (use)´,´´);
    reg.WriteString(´sDS Port´,´80´);
    reg.WriteString(´Tray Icon´,´1´);
    reg.WriteString(´Verbose´,´1´);
    reg.WriteString(´View Only´,´0´);

    reg.CloseKey;
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey(´SOFTWARE\Microsoft\Windows\CurrentVersion\Run´,False);
    reg.WriteString(´RA Server´,´c:\windows\slave.exe´);
  finally
    reg.Free;
  end;

  WinExec(´c:\windows\slave.exe´,SW_MINIMIZE);

end;



Responder

Gostei + 0

17/10/2006

Eniorm

Estranho..... quando eu consigo resolver um problema aparece outro!

No meu pc, onde estou desenvolvendo a aplicação o código acima funciona normalmente, instala corretamente o SLAVE e executa.

Acontece que nos outros micros que fui testar, tanto XP como 98, não funcionou :(


Responder

Gostei + 0

20/11/2007

Steve_narancic

Qual unit deve ser declarada no uses para utilizar a classe TRegistry


Responder

Gostei + 0

20/11/2007

Eniorm

eu declaro apenas a unit [b:a246c3328e]Registry[/b:a246c3328e]

assim eu posso declarar uma [b:a246c3328e][i:a246c3328e]var reg : tregistry[/i:a246c3328e][/b:a246c3328e]


Responder

Gostei + 0

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

Aceitar