如何实现文件自我复制 那个新欢乐时光病毒好象就是这样,一打开一个文件夹就会自动生成两个文件,那种自我复制是怎么通过编程实现的呢?另外,有些病毒将恶意代码粘贴到可执行文件里面。这又是如何实现的呢?最好给我一个源程序参考一下--Delphi,C,Asm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先做个标记,我也一直想知道这个问题。不过我这里有一个病毒程序源代码,也可以实现你说的那些功能。用C和ASM写的,我看不懂,你要的话我给你发过去。 去看Delphi中流的使用吧,很容易实现的 自我复制 其实很简单! 你一你在你的代码中可以加入像createfile(),copyfile()这样的代码就可以复制(想复制到哪里就可以到哪里),用TFileStream 你可以把你想要的代码加到任何文件(你要有写的权限)的任何位置;因为TFileStream 可以精确定位文件的字节流位置; 我刚学过,你试一下:procedure TForm1.FormCreate(Sender: TObject);var s:Pchar;begin s:= Pchar(Application.ExeName); copyfile(s, 'c:\a.exe', true);end;一起看一下吧! procedure TFORM1.FORMCreate(Sender: TObject); var myname: string; begin myname := ExtractFilename(Application.Exename); //获得文件名 if application.Exename < > GetWindir + myname then //如果文件不是在Windows\System\那么.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{将自己拷贝到Windows\System\下} Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件 application.Terminate;//退出 end; end; 同意 zhenpengka(小鸟笨笨) 这儿有一篇文章,与你的要求应该紧密相关吧,由于时间关系小弟就不多说了,自己看看吧,<<浅谈用delphi来编写蠕虫病毒(part Ⅰ)>>首先声明坚决反对大家编写病毒程序,引用这个文章只是为了解决问题研究技术之用,不能用作非法用途喔,http://www.xfocus.net/articles/200202/353.html是用delphi开发的,没有完整代码,但有一个小例子可以供研究研究哈,祝大家能技术进步哈,也祝小弟自己在高考之后争取上星喔(唉,我才只有一个小三角形而已,唉,革命尚未成功,同志仍需努力啊)大家多多给分哈 http://www.xfocus.net/articles/200202/353.html这篇文章讲的不错,看看 想把你自己的代码粘到别的可执行文件中去。呵呵,这可不是直接搬过去就OK的。因为windows下的可执行文件运行时涉及的东西很多。像什么内存定位,还有引用的函数、资源什么的,都在文件头中。你直接把代码弄过去,但引用的一些api函数(一般的程序都会或多或少的引用)在新的文件头中不定有,它就执行不了了。当然肯定有方法可以实现,这我也不清楚。像有些病毒,比如FunLove它就像自己的代码插入到其它可执行文件中。还有像exe压缩文件,比如aspack,upx等,他们可以将自己的一段解压缩代码行执行,再在内存中还原原来的,解压后可以再继续执行原来的文件。 使用资源保存另外的程序或病毒感染Exe这个很有难度的,会的人大多数不愿意公开的 关于bmp的问题 关于声卡的Recording中的LineIn的控制问题 API HOOK如何防止多线程访问? 我要打印下面样式的表单,怎么实现,在线急等! 共享内存怎么建立 please help me . 再次提问,111分 值得注意!!!!!!! 本地数据库连接问题(ACCESS) 急! 在DELPHI5中如何实现逐行打印而不翻页(普通针打)? 关于delphi中canvas曲线重绘问题,谢谢! 怀疑Delphi v7.0 中 TcpServers TcpClient UDP 可能有问题,请高人指教
用TFileStream 你可以把你想要的代码加到任何文件(你要有写的权限)的任何位置;因为TFileStream 可以精确定位文件的字节流位置;
procedure TForm1.FormCreate(Sender: TObject);
var
s:Pchar;
begin
s:= Pchar(Application.ExeName);
copyfile(s, 'c:\a.exe', true);
end;
一起看一下吧!
var myname: string;
begin
myname := ExtractFilename(Application.Exename); //获得文件名
if application.Exename < > GetWindir + myname then //如果文件不是在Windows\System\那么..
begin
copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{将自己拷贝到Windows\System\下}
Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件
application.Terminate;//退出
end;
end;
<<浅谈用delphi来编写蠕虫病毒(part Ⅰ)>>
首先声明坚决反对大家编写病毒程序,引用这个文章只是为了解决问题研究技术之用,不能用作非法用途喔,http://www.xfocus.net/articles/200202/353.html
是用delphi开发的,没有完整代码,但有一个小例子可以供研究研究哈,祝大家能技术进步哈,也祝小弟自己在高考之后争取上星喔(唉,我才只有一个小三角形而已,唉,革命尚未成功,同志仍需努力啊)
大家多多给分哈
这篇文章讲的不错,看看
因为windows下的可执行文件运行时涉及的东西很多。像什么内存定位,还有引用的函数、资源什么的,都在文件头中。你直接把代码弄过去,但引用的一些api函数(一般的程序都会或多或少的引用)在新的文件头中不定有,它就执行不了了。当然肯定有方法可以实现,这我也不清楚。像有些病毒,比如FunLove它就像自己的代码插入到其它可执行文件中。还有像exe压缩文件,比如aspack,upx等,他们可以将自己的一段解压缩代码行执行,再在内存中还原原来的,解压后可以再继续执行原来的文件。
这个很有难度的,会的人大多数不愿意公开的