Skip to content

Device locked (fake virus) #3408

Closed
Closed

Description

@hugo67aura

``
from kivy.app import App
from kivy.clock import Clock
from kivy.animation import Animation
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.core.window import Window
from kivy.graphics import Color, Rectangle

Window.clearcolor = (0, 0, 0, 1)
Window.fullscreen = "auto"

class DeviceLocked(App):

def build(self):
    self.tempo = 60
    self.erros = 0
    self.tela = BoxLayout(
        orientation="vertical",
        padding=25,
        spacing=15
    )

    self.mostrar_inicio()
    return self.tela

def fundo(self, cor):
    self.tela.canvas.before.clear()
    with self.tela.canvas.before:
        Color(*cor)
        self.rect = Rectangle(
            pos=self.tela.pos,
            size=self.tela.size
        )
    self.tela.bind(
        pos=self.atualizar_fundo,
        size=self.atualizar_fundo
    )

def atualizar_fundo(self, *args):
    self.rect.pos = self.tela.pos
    self.rect.size = self.tela.size

def limpar(self):
    self.tela.clear_widgets()
    self.tela.opacity = 1

def mostrar_inicio(self):
    self.limpar()
    self.fundo((0.02, 0.02, 0.02, 1))

    titulo = Label(
        text="[b]DEVICE LOCKED[/b]",
        markup=True,
        font_size=35
    )

    botao = Button(
        text="EXECUTAR",
        font_size=25,
        size_hint=(1, 0.25)
    )
    botao.bind(on_release=self.iniciar)

    self.tela.add_widget(titulo)
    self.tela.add_widget(botao)

def iniciar(self, *args):
    self.tempo = 60
    self.erros = 0
    self.mostrar_bloqueio()
    Clock.schedule_interval(self.contagem, 1)

def mostrar_bloqueio(self):
    self.limpar()
    self.fundo((0.65, 0, 0, 1))

    self.titulo = Label(
        text="[b]DEVICE LOCKED[/b]",
        markup=True,
        font_size=36
    )

    self.aviso = Label(
        text="ESCAPE DISABLED\n\nSeus arquivos estão em risco!",
        font_size=20
    )

    self.timer = Label(
        text="TEMPO: 01:00",
        font_size=30
    )

    self.codigo = TextInput(
        hint_text="Digite o código",
        multiline=False,
        size_hint=(1, 0.15)
    )

    self.desbloquear = Button(
        text="DESBLOQUEAR",
        size_hint=(1, 0.18)
    )
    self.desbloquear.bind(
        on_release=self.verificar_codigo
    )

    self.tela.add_widget(self.titulo)
    self.tela.add_widget(self.aviso)
    self.tela.add_widget(self.timer)
    self.tela.add_widget(self.codigo)
    self.tela.add_widget(self.desbloquear)

def verificar_codigo(self, *args):
    if self.codigo.text == "1234":
        Clock.unschedule(self.contagem)
        self.mostrar_inicio()
    else:
        self.erros += 1
        self.codigo.text = ""

        if self.erros >= 2:
            self.codigo.disabled = True
            self.desbloquear.disabled = True
            self.aviso.text = "ACCESS DENIED"

def contagem(self, dt):
    self.tempo -= 1

    minutos = self.tempo // 60
    segundos = self.tempo % 60

    self.timer.text = (
        f"TEMPO: {minutos:02d}:{segundos:02d}"
    )

    if self.tempo <= 0:
        Clock.unschedule(self.contagem)
        self.expirou()

def expirou(self):
    self.limpar()
    self.fundo((0, 0, 0, 1))

    mensagem = Label(
        text="[b]TIME EXPIRED[/b]",
        markup=True,
        font_size=40
    )

    self.tela.add_widget(mensagem)

    Clock.schedule_once(self.fade, 5)

def fade(self, dt):
    animacao = Animation(opacity=0, duration=2)
    animacao.bind(
        on_complete=lambda *args: self.mostrar_inicio()
    )
    animacao.start(self.tela)

DeviceLocked().run()
``

Activity

  1. locked and limited conversation to collaborators on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions