Fórum Chave Binária no RegEdit #331235
16/10/2006
0
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
Curtir tópico
+ 0Posts
17/10/2006
Eniorm
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;
Gostei + 0
17/10/2006
Eniorm
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 :(
Gostei + 0
20/11/2007
Steve_narancic
Gostei + 0
20/11/2007
Eniorm
assim eu posso declarar uma [b:a246c3328e][i:a246c3328e]var reg : tregistry[/i:a246c3328e][/b:a246c3328e]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)