Chave Binária no RegEdit
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
depois usei:
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
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
Curtidas 0
Respostas
Eniorm
16/10/2006
Amigos, resolvi como gravar a senha criptografada em chave binária no Registro do Windows.
A chave do Registro, exportada:
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
Eniorm
16/10/2006
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 :(
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
Steve_narancic
16/10/2006
Qual unit deve ser declarada no uses para utilizar a classe TRegistry
GOSTEI 0
Eniorm
16/10/2006
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]
assim eu posso declarar uma [b:a246c3328e][i:a246c3328e]var reg : tregistry[/i:a246c3328e][/b:a246c3328e]
GOSTEI 0