免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4243 | 回复: 10
打印 上一主题 下一主题

求助:如何编写一个perl程序完成自我的复制 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-30 16:54 |只看该作者 |倒序浏览
#!/usr/bin/perl -w
use strict;
`copy $0 1234.exe`;

我装上面代码保存至t.pl,然后使用perl2exe装t.pl编译成t.exe,执行t.exe,将会生成一个1234.exe,但是却是copy的t.pl,不是t.exe,请求一下各位高手,有什么方法能完成.exe文件的自我复制?
谢谢

我想要的功能是:
运行t1.exe能复制t1.exe到1234.exe和5678.exe
运行1234.exe能复制1234.exe到5678.exe
运行5678.exe能复制5678.exe到1234.exe

[ 本帖最后由 greenfans 于 2007-8-2 13:56 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-07-30 19:14 |只看该作者
`copy t.exe 1234.exe`;

论坛徽章:
0
3 [报告]
发表于 2007-07-31 13:40 |只看该作者
$0 在编译时已经替换了?

论坛徽章:
0
4 [报告]
发表于 2007-07-31 15:13 |只看该作者
原帖由 royalzhang 于 2007-7-30 19:14 发表
`copy t.exe 1234.exe`;


我想复制的是程序自身,而不是指定的某一个文件,你这样复制的话,1234.exe又怎么样能达到复制自己的目的呢?

论坛徽章:
0
5 [报告]
发表于 2007-07-31 16:14 |只看该作者
#!/usr/bin/perl -w
use strict;
$0 = 't.exe';
`copy $0 1234.exe`;

自己变通吧。呵呵

论坛徽章:
0
6 [报告]
发表于 2007-07-31 18:33 |只看该作者
my $name = $0;
$name =~ s/pl$/exe/;
`cp $name 1234.exe"

论坛徽章:
0
7 [报告]
发表于 2007-08-02 13:55 |只看该作者
还是没有达到目的,我想要做的是这样:
运行t1.exe能复制t1.exe到1234.exe和5678.exe
运行1234.exe能复制1234.exe到5678.exe
运行5678.exe能复制5678.exe到1234.exe

论坛徽章:
0
8 [报告]
发表于 2007-08-04 17:11 |只看该作者
原帖由 greenfans 于 2007-8-2 13:55 发表
还是没有达到目的,我想要做的是这样:
运行t1.exe能复制t1.exe到1234.exe和5678.exe
运行1234.exe能复制1234.exe到5678.exe
运行5678.exe能复制5678.exe到1234.exe

你这程序行为怎么看起来和病毒差不多似的。

论坛徽章:
0
9 [报告]
发表于 2007-08-04 19:44 |只看该作者
是啊,有点奇怪。

论坛徽章:
0
10 [报告]
发表于 2007-08-06 11:34 |只看该作者
这个有点麻烦,系统变量$0并不能代表t。exe
看能不能通过获取当前进程的名字来得到文件名,这可能需要调用windows的API了

[ 本帖最后由 uliyas 于 2007-8-6 11:35 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP