Ob sowas sicher ist oder nicht lasst lieber meine Sorge sein. Ich bin mir sicher, dass es 100% funktionieren wird, da das Ding einfach schlecht programmiert ist und zumindest das letzte offizielle Build immer die gleichen Sachen benutzt. Dependencies löschen geht schon, die .exe an sich mit Taskkill und on Reboot auch. Einziges Problem ist, dass ich dne Registry-Eintrag beseitigt haben will, damit ich wirklich 100% sicher sein kann.
Ich glaube, dass wir hier nicht über den Sinn diskutieren sollten. Tatsache ist:
- Der Key ist existent (hat nix drinstehen nur den Value 'KeyName'
- Wenn der in CurrentUser abgelegt ist kann der gefunden und gelöscht werden, nur in HKEY_LOCAL_MACHINE findet der den nicht
- x: Integer und reg: TRegistry sind global definiert.
nochmal der aktuelle Code:
Delphi-Quellcode:
function RegCheck():Boolean;
begin
result:= false;
reg:= TRegistry.Create;
try
reg.RootKey:= HKEY_LOCAL_MACHINE;
if reg.KeyExists('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\') then
begin
if reg.ValueExists('KeyName') then
begin
Names:= ('HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
result:= True;
x:= 1;
end;
end;
reg.RootKey:= HKEY_Current_User;
if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
begin
if reg.ValueExists('KeyName') then
begin
Names:= ('HKEY_Current_User\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
result:= True;
x:= 2;
end;
end;
finally
reg.Free;
end;
end;
Leider funktioniert dieser Code auch nicht, ich denke es ist der selbe Fehler, dieser Code sollte den Key löschen aber anscheinend geht er nicht in die Schleife ich weiß nicht warum. Dort steht dann nur Starting removal dependencies... und die procedure ist beendet.
Delphi-Quellcode:
if Res1 = True then
begin
sMemo1.Lines.Add('Starting removal dependencies...');
if x = 1 then
begin
reg:= Tregistry.Create;
try
reg.RootKey:= HKEY_Local_Machine;
if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
begin
sMemo1.Lines.Add('');
sMemo1.Lines.Add('Getting values...');
sMemo1.Lines.Add('Deleting trojan from registry...');
reg.DeleteValue('KeyName');
if reg.ValueExists('KeyName') then
begin
sMemo1.Lines.Add('');
sMemo1.Lines.Add('Failed to delete.');
sMemo1.Lines.Add('Maybe you have no admin rights?');
sMemo1.Lines.Add('You can also delete it manually using the ''''regedit''''command');
sMemo1.Lines.Add('');
end;
end;
finally
reg.Free;
end;
if x = 2 then
begin
reg:= Tregistry.Create;
try
reg.RootKey:= HKEY_Current_User;
if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
begin
sMemo1.Lines.Add('');
sMemo1.Lines.Add('Getting values...');
sMemo1.Lines.Add('Deleting trojan from registry...');
reg.DeleteValue('KeyName');
if reg.ValueExists('KeyName') then
begin
sMemo1.Lines.Add('');
sMemo1.Lines.Add('Failed to delete.');
sMemo1.Lines.Add('Maybe you have no admin rights?');
sMemo1.Lines.Add('You can also delete it manually using the ''''regedit''''command');
sMemo1.Lines.Add('');
end;
end;
finally
reg.Free;
end;
end;
Danke für euer Verständnis und eure Hilfe