十行代码--用Python写一个USB病毒
副问题[/!--empirenews.page--]
各人好,我又返来了。 昨天在上茅厕的时辰突发奇想,当你把usb插进去的时辰,能不能自动执行usb上的措施。查了一下,发明只有windows上可以,详细的各人也可以搜刮(搜刮要害词usb autorun)到。可是,假如我想,好比,当一个usb插入时,在靠山自动把usb里的重要文件神不知鬼不觉地拷贝到当地可能上传到某个处事器,就必要非凡的软件帮助。 于是我心想,能不能用python写一个措施,让它在靠山运行。每当有u盘插入的时辰,就自动拷贝个中重要文件。 怎样判定U盘的插入与否? 起首我们打开电脑终端,进入/Volumes目次,这时辰插入U盘,可以发明它被挂载在了这个目次之下,也就是说,我们只要在固按时刻扫描这个目次,当这个目次有新文件夹呈现的时辰,很也许有U盘被插入了。 我的计划是这样的,用time.sleep(3)函数,让措施保持运行状态,而且每隔三秒查察一下/Volumes/目次,假如多出来文件夹,就将其拷贝到其它的文件夹。 就像问题所示,我们真的只用了10行(着实是11行,凑个整:)完成了这个“病毒”。我们可以发明usb中的目次,在插入半分钟后所有躺在了home目次下了。 怎样选择性的复制文件? 方才我们写了一个很浅显的剧本测试了一下这个设法的可行性,可是照旧有题目。适才之以是能把U盘中全部文件很快复制进去,是由于U盘中只有两三个文件,巨细不高出15M。假如方针U盘中有许多影戏,音乐,这些我们并不必要的文件,我们的措施就应该能跳过它们,仅仅选择一些重要的好比.docx好比.ppt文件,可能仅仅复制最近修悔改的那些文件,可能解除全部巨细大于5M的文件。我们可以用python做到吗?虽然! os.walk 递归文件夹中全部文件 http://www.runoob.com/python/os-walk.html 这里我放了一个体人的教程。各人能够相识一下,总之我或许领略是这么个对象。 照旧举个例子吧。 我在某目次下建设了testwalk文件夹,内里有file123.txt三个文件,folder123三个文件夹,个中folder1中有文件file4.txt以及folder4 此刻我们来测试一下 root存放的是当前位置,它会把./testwalk/下全部的文件夹作为根目次,往下搜刮 单独查察 dirs 单独查察 files 好了,我们此刻必要递归usb文件夹,找到全部的file,查察巨细,假如小于,好比3M,就拷贝进home,大于就舍去。 shutil模块 此刻我们拿适才的文件夹举例子,假如想把file1.txt拷贝到folder2: 尚有很多行使器材在shutil内里这里就不详述了。 os.path.getsize()判定巨细 os.path.getsize(文件名)返回的是一个单元为byte的数值,假如用来查察文件巨细,我们则必要手动写一个函数,将其换算成轻易阅读的情势。 这里我们只要选择文件巨微小于3M的即可,3M = 3 * 1024kB = 3 * 1024*1024byte 团结shutil.copy2就可以把选定巨细的文件复制进我们的方针文件夹了 怎样指定文件范例 这里就必要正则表达式来辅佐我们了。 正则表达式内允许多,《python焦点编程》顶用了整整一章来讲,以是我们也不深入了。下面是官方文档,感乐趣的可以看一下。 https://docs.python.org/2/library/re.html 如下,我们让指定文件后缀以及指定文件巨细可以复制进我们的方针文件: (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |