anti debug varAçtıktan sonra 'xd' adlı bir messagebox gösterip kapandı.
C:\*\*\*\*>C:\Users\*\AppData\Local\Programs\Python\Python314\python.exe run_unpackme_obf.py
Traceback (most recent call last):
File "C:\*\*\*\*\run_unpackme_obf.py", line 1, in <module>
import unpackme_obf
ImportError: DLL load failed while importing unpackme_obf: Devingen bağlantı kitaplığını (DLL) başlatma işlemi başarısız.
en son denedigimde çalışıyordu python sürümünden eminmisinizAçtıktan sonra 'xd' adlı bir messagebox gösterip kapandı.
C:\*\*\*\*>C:\Users\*\AppData\Local\Programs\Python\Python314\python.exe run_unpackme_obf.py
Traceback (most recent call last):
File "C:\*\*\*\*\run_unpackme_obf.py", line 1, in <module>
import unpackme_obf
ImportError: DLL load failed while importing unpackme_obf: Devingen bağlantı kitaplığını (DLL) başlatma işlemi başarısız.
konsolda çalıştırdım düz ek bişey kullanmadımanti debug var
tamam hatayı çozüp up layacağim tekrardan şimdi oyun oynıomkonsolda çalıştırdım düz ek bişey kullanmadım
upladımevet sorunu buldum anti vm açmışsın vmprotect de onu kapatıp tekrar atarsan deneyceğim
import base64
import sys
import ctypes
import os
def kwctvdhv():
sznpps = 950
ngkpwm = 150
if ((sznpps ^ ngkpwm) ^ ngkpwm) == sznpps:
return None
yioxxm = 348
return None
def yeyqjdhc():
return None
def OO0OOOOO00OO(obfuscated_num):
key = 39388
return obfuscated_num ^ key
def llIlIIllllIl(encoded_str):
key = 221
decoded_bytes = base64.b64decode(encoded_str)
return "".join(chr(b ^ key) for b in decoded_bytes)
def _check_debugger_impl():
uwkvsr = 308
ovatel = 824
if uwkvsr + ovatel != 1132:
gahjqd = 388
return None
if os.name == llIlIIllllIl("s6k="):
if ctypes.windll.kernel32.IsDebuggerPresent():
os._exit(OO0OOOOO00OO(39389))
is_debugger = ctypes.c_bool(False)
ctypes.windll.kernel32.CheckRemoteDebuggerPresent(
ctypes.windll.kernel32.GetCurrentProcess(),
ctypes.byref(is_debugger),
)
if is_debugger.value:
os._exit(OO0OOOOO00OO(39389))
return None
if os.name == llIlIIllllIl("rbKutKU="):
try:
with open(
llIlIIllllIl("8q2vsr7yrrixu/KuqbypqK4="),
llIlIIllllIl("rw=="),
) as f:
for line in f:
if line.startswith(llIlIIllllIl("ia+8vrivjbS55w==")):
pid = int(line.split()[OO0OOOOO00OO(39389)])
if pid != OO0OOOOO00OO(39388):
os._exit(OO0OOOOO00OO(39389))
break
except (IOError, ValueError):
return None
return None
_check_debugger_impl()
tk = __import__(llIlIIllllIl("qba0s6m4rw=="))
_imp_3290 = __import__(
llIlIIllllIl("qba0s6m4rw=="),
fromlist=(llIlIIllllIl("sLiurry6uL+ypQ=="),),
)
messagebox = _imp_3290.messagebox
hashlib = __import__(llIlIIllllIl("tbyutbG0vw=="))
TARGET_HASH = llIlIIllllIl(
"uL/k7O7suerk6O++6+ns7+nv7bnpvLzo7+u56u2+7bw="
)
class LoginApp:
def __init__(self, root):
self.root = root
self.root.title(llIlIIllllIl("jpieiI+Y/ZGSmpST/Y6EjomYkA=="))
self.root.geometry(llIlIIllllIl("6e3tpe7t7Q=="))
self.root.configure(bg=llIlIIllllIl("/u257bntuQ=="))
self.root.resizable(False, False)
self.lbl_title = tk.Label(
root,
text=llIlIIllllIl("jpieiI+Y/ZGSmpST"),
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39368),
llIlIIllllIl("v7KxuQ=="),
),
bg=llIlIIllllIl("/u257bntuQ=="),
fg=llIlIIllllIl("/u3tu7vp7A=="),
)
self.lbl_title.pack(
pady=(
OO0OOOOO00OO(39412),
OO0OOOOO00OO(39385),
)
)
self.lbl_subtitle = tk.Label(
root,
text=llIlIIllllIl("iJONnJ6W/ZCYmA=="),
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39382),
),
bg=llIlIIllllIl("/u257bntuQ=="),
fg=llIlIIllllIl("/u3tu7vp7A=="),
)
self.lbl_subtitle.pack(
pady=(
OO0OOOOO00OO(39388),
OO0OOOOO00OO(39382),
)
)
self.entry_key = tk.Entry(
root,
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39378),
),
justify=llIlIIllllIl("vrizqbiv"),
bg=llIlIIllllIl("v7G8vrY="),
fg=llIlIIllllIl("qrW0qbg="),
insertbackground=llIlIIllllIl("qrW0qbg="),
relief=llIlIIllllIl("u7G8qQ=="),
)
self.entry_key.config(
highlightbackground=llIlIIllllIl("/u3tu7vp7A=="),
highlightcolor=llIlIIllllIl("/u3tu7vp7A=="),
highlightthickness=OO0OOOOO00OO(39389),
)
self.entry_key.pack(
ipady=OO0OOOOO00OO(39385),
ipadx=OO0OOOOO00OO(39385),
pady=OO0OOOOO00OO(39382),
)
self.entry_key.bind(llIlIIllllIl("4Y+4qaivs+M="), self.check_key)
self.btn_login = tk.Button(
root,
text=llIlIIllllIl("kZKalJM="),
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39376),
llIlIIllllIl("v7KxuQ=="),
),
bg=llIlIIllllIl("/u3tu7vp7A=="),
fg=llIlIIllllIl("v7G8vrY="),
activebackground=llIlIIllllIl("qrW0qbg="),
activeforeground=llIlIIllllIl("v7G8vrY="),
relief=llIlIIllllIl("u7G8qQ=="),
command=self.check_key,
)
self.btn_login.pack(
pady=OO0OOOOO00OO(39412),
ipadx=OO0OOOOO00OO(39368),
)
self.lbl_result = tk.Label(
root,
text="",
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39362),
llIlIIllllIl("v7KxuQ=="),
),
bg=llIlIIllllIl("/u257bntuQ=="),
)
self.lbl_result.pack(pady=OO0OOOOO00OO(39382))
def check_key(self, event=None):
zeeqdb = 300
srocrh = 216
if zeeqdb + srocrh == 516:
key = self.entry_key.get()
wnklxa = 772
zifehz = 948
if ((wnklxa ^ zifehz) ^ zifehz) == wnklxa:
hashed_input = hashlib.md5(
key.encode(llIlIIllllIl("qKm78OU="))
).hexdigest()
qvmjoy = 242
fkjnuc = 389
if ((qvmjoy ^ fkjnuc) ^ fkjnuc) == qvmjoy:
if hashed_input == TARGET_HASH:
self.show_success()
return
self.lbl_result.config(
text=llIlIIllllIl("nJ6emI6O/ZmYk5SYmQ=="),
fg=llIlIIllllIl("r7i5"),
)
self.root.after(
OO0OOOOO00OO(40460),
lambda: self.lbl_result.config(text=""),
)
def show_success(self):
tskfek = 824
onlkuh = 708
if tskfek + onlkuh == 1532:
for widget in self.root.winfo_children():
widget.destroy()
lozzpx = 991
fldacx = 295
if ((lozzpx ^ fldacx) ^ fldacx) == lozzpx:
lbl_ok = tk.Label(
self.root,
text=llIlIIllllIl("nJ6emI6O/ZqPnJOJmJk="),
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39364),
llIlIIllllIl("v7KxuQ=="),
),
bg=llIlIIllllIl("/u257bntuQ=="),
fg=llIlIIllllIl("/u3tu7vp7A=="),
)
lbl_ok.pack(
pady=(
OO0OOOOO00OO(39308),
OO0OOOOO00OO(39382),
)
)
polqfa = 314
kbxtyn = 347
if ((polqfa ^ kbxtyn) ^ kbxtyn) == polqfa:
lbl_info = tk.Label(
self.root,
text=llIlIIllllIl("iJONnJ6WkJg="),
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39362),
llIlIIllllIl("v7KxuQ=="),
),
bg=llIlIIllllIl("/u257bntuQ=="),
fg=llIlIIllllIl("/ru77e3o6A=="),
)
lbl_info.pack(
pady=OO0OOOOO00OO(39368),
)
ihqpth = 720
rxmbkb = 830
if ihqpth + rxmbkb == 1550:
btn_exit = tk.Button(
self.root,
text=llIlIIllllIl("mIWUiQ=="),
font=(
llIlIIllllIl("nrKor7S4r/2TuKo="),
OO0OOOOO00OO(39376),
llIlIIllllIl("v7KxuQ=="),
),
bg=llIlIIllllIl("/ru77e3o6A=="),
fg=llIlIIllllIl("v7KxuQ=="),
command=self.root.destroy,
)
btn_exit.pack(pady=OO0OOOOO00OO(39412))
if __name__ == llIlIIllllIl("goKwvLSzgoI="):
root = tk.Tk()
app = LoginApp(root)
root.mainloop()
import os
import ctypes
import tkinter as tk
import hashlib
TARGET_HASH = "1" // test amacli 1 olarak degistirildi
def check_debugger():
if os.name == "nt":
k32 = ctypes.windll.kernel32
if k32.IsDebuggerPresent():
os._exit(1)
is_debugger = ctypes.c_bool(False)
k32.CheckRemoteDebuggerPresent(
k32.GetCurrentProcess(),
ctypes.byref(is_debugger),
)
if is_debugger.value:
os._exit(1)
elif os.name == "posix":
try:
with open("/proc/self/status", "r") as f:
for line in f:
if line.startswith("TracerPid:"):
pid = int(line.split()[1])
if pid != 0:
os._exit(1)
break
except (IOError, ValueError):
pass
class LoginApp:
def __init__(self, root: tk.Tk):
self.root = root
self.root.title("SECURE LOGIN SYSTEM")
self.root.geometry("400x300")
self.root.configure(bg="#0d0d0d")
self.root.resizable(False, False)
self.lbl_title = tk.Label(
root,
text="SECURE LOGIN",
font=("Courier New", 20, "bold"),
bg="#0d0d0d",
fg="#00ff41",
)
self.lbl_title.pack(pady=(40, 5))
self.lbl_subtitle = tk.Label(
root,
text="UNPACK MEE",
font=("Courier New", 10),
bg="#0d0d0d",
fg="#00ff41",
)
self.lbl_subtitle.pack(pady=(0, 20))
self.entry_key = tk.Entry(
root,
font=("Courier New", 14),
justify="center",
bg="black",
fg="white",
insertbackground="white",
relief="flat",
)
self.entry_key.config(
highlightbackground="#00ff41",
highlightcolor="#00ff41",
highlightthickness=1,
)
self.entry_key.pack(ipady=5, ipadx=5, pady=10)
self.entry_key.bind("<Return>", self.check_key)
self.btn_login = tk.Button(
root,
text="LOGIN",
font=("Courier New", 12, "bold"),
bg="#00ff41",
fg="black",
activebackground="white",
activeforeground="black",
relief="flat",
command=self.check_key,
)
self.btn_login.pack(pady=20, ipadx=20)
self.lbl_result = tk.Label(
root,
text="",
font=("Courier New", 18, "bold"),
bg="#0d0d0d",
)
self.lbl_result.pack(pady=10)
def check_key(self, event=None):
key = self.entry_key.get()
hashed_input = "1"
if hashed_input == TARGET_HASH:
self.show_success()
return
self.lbl_result.config(text="ACCESS DENIED", fg="red")
self.root.after(2000, lambda: self.lbl_result.config(text=""))
def show_success(self):
for widget in self.root.winfo_children():
widget.destroy()
lbl_ok = tk.Label(
self.root,
text="ACCESS GRANTED",
font=("Courier New", 24, "bold"),
bg="#0d0d0d",
fg="#00ff41",
)
lbl_ok.pack(pady=(80, 10))
lbl_info = tk.Label(
self.root,
text="UNPACKME",
font=("Courier New", 30, "bold"),
bg="#0d0d0d",
fg="#ff0055",
)
lbl_info.pack(pady=(20, 10))
btn_exit = tk.Button(
self.root,
text="EXIT",
font=("Courier New", 12, "bold"),
bg="#ff0055",
fg="#00ff41",
command=self.root.destroy,
)
btn_exit.pack(pady=(40, 0))
if __name__ == "__main__":
check_debugger()
root = tk.Tk()
app = LoginApp(root)
root.mainloop()
Elinize sağlık size soru sorsam cevaplarniyidiniz![]()
Unpacked:
Python:import base64 import sys import ctypes import os def kwctvdhv(): sznpps = 950 ngkpwm = 150 if ((sznpps ^ ngkpwm) ^ ngkpwm) == sznpps: return None yioxxm = 348 return None def yeyqjdhc(): return None def OO0OOOOO00OO(obfuscated_num): key = 39388 return obfuscated_num ^ key def llIlIIllllIl(encoded_str): key = 221 decoded_bytes = base64.b64decode(encoded_str) return "".join(chr(b ^ key) for b in decoded_bytes) def _check_debugger_impl(): uwkvsr = 308 ovatel = 824 if uwkvsr + ovatel != 1132: gahjqd = 388 return None if os.name == llIlIIllllIl("s6k="): if ctypes.windll.kernel32.IsDebuggerPresent(): os._exit(OO0OOOOO00OO(39389)) is_debugger = ctypes.c_bool(False) ctypes.windll.kernel32.CheckRemoteDebuggerPresent( ctypes.windll.kernel32.GetCurrentProcess(), ctypes.byref(is_debugger), ) if is_debugger.value: os._exit(OO0OOOOO00OO(39389)) return None if os.name == llIlIIllllIl("rbKutKU="): try: with open( llIlIIllllIl("8q2vsr7yrrixu/KuqbypqK4="), llIlIIllllIl("rw=="), ) as f: for line in f: if line.startswith(llIlIIllllIl("ia+8vrivjbS55w==")): pid = int(line.split()[OO0OOOOO00OO(39389)]) if pid != OO0OOOOO00OO(39388): os._exit(OO0OOOOO00OO(39389)) break except (IOError, ValueError): return None return None _check_debugger_impl() tk = __import__(llIlIIllllIl("qba0s6m4rw==")) _imp_3290 = __import__( llIlIIllllIl("qba0s6m4rw=="), fromlist=(llIlIIllllIl("sLiurry6uL+ypQ=="),), ) messagebox = _imp_3290.messagebox hashlib = __import__(llIlIIllllIl("tbyutbG0vw==")) TARGET_HASH = llIlIIllllIl( "uL/k7O7suerk6O++6+ns7+nv7bnpvLzo7+u56u2+7bw=" ) class LoginApp: def __init__(self, root): self.root = root self.root.title(llIlIIllllIl("jpieiI+Y/ZGSmpST/Y6EjomYkA==")) self.root.geometry(llIlIIllllIl("6e3tpe7t7Q==")) self.root.configure(bg=llIlIIllllIl("/u257bntuQ==")) self.root.resizable(False, False) self.lbl_title = tk.Label( root, text=llIlIIllllIl("jpieiI+Y/ZGSmpST"), font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39368), llIlIIllllIl("v7KxuQ=="), ), bg=llIlIIllllIl("/u257bntuQ=="), fg=llIlIIllllIl("/u3tu7vp7A=="), ) self.lbl_title.pack( pady=( OO0OOOOO00OO(39412), OO0OOOOO00OO(39385), ) ) self.lbl_subtitle = tk.Label( root, text=llIlIIllllIl("iJONnJ6W/ZCYmA=="), font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39382), ), bg=llIlIIllllIl("/u257bntuQ=="), fg=llIlIIllllIl("/u3tu7vp7A=="), ) self.lbl_subtitle.pack( pady=( OO0OOOOO00OO(39388), OO0OOOOO00OO(39382), ) ) self.entry_key = tk.Entry( root, font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39378), ), justify=llIlIIllllIl("vrizqbiv"), bg=llIlIIllllIl("v7G8vrY="), fg=llIlIIllllIl("qrW0qbg="), insertbackground=llIlIIllllIl("qrW0qbg="), relief=llIlIIllllIl("u7G8qQ=="), ) self.entry_key.config( highlightbackground=llIlIIllllIl("/u3tu7vp7A=="), highlightcolor=llIlIIllllIl("/u3tu7vp7A=="), highlightthickness=OO0OOOOO00OO(39389), ) self.entry_key.pack( ipady=OO0OOOOO00OO(39385), ipadx=OO0OOOOO00OO(39385), pady=OO0OOOOO00OO(39382), ) self.entry_key.bind(llIlIIllllIl("4Y+4qaivs+M="), self.check_key) self.btn_login = tk.Button( root, text=llIlIIllllIl("kZKalJM="), font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39376), llIlIIllllIl("v7KxuQ=="), ), bg=llIlIIllllIl("/u3tu7vp7A=="), fg=llIlIIllllIl("v7G8vrY="), activebackground=llIlIIllllIl("qrW0qbg="), activeforeground=llIlIIllllIl("v7G8vrY="), relief=llIlIIllllIl("u7G8qQ=="), command=self.check_key, ) self.btn_login.pack( pady=OO0OOOOO00OO(39412), ipadx=OO0OOOOO00OO(39368), ) self.lbl_result = tk.Label( root, text="", font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39362), llIlIIllllIl("v7KxuQ=="), ), bg=llIlIIllllIl("/u257bntuQ=="), ) self.lbl_result.pack(pady=OO0OOOOO00OO(39382)) def check_key(self, event=None): zeeqdb = 300 srocrh = 216 if zeeqdb + srocrh == 516: key = self.entry_key.get() wnklxa = 772 zifehz = 948 if ((wnklxa ^ zifehz) ^ zifehz) == wnklxa: hashed_input = hashlib.md5( key.encode(llIlIIllllIl("qKm78OU=")) ).hexdigest() qvmjoy = 242 fkjnuc = 389 if ((qvmjoy ^ fkjnuc) ^ fkjnuc) == qvmjoy: if hashed_input == TARGET_HASH: self.show_success() return self.lbl_result.config( text=llIlIIllllIl("nJ6emI6O/ZmYk5SYmQ=="), fg=llIlIIllllIl("r7i5"), ) self.root.after( OO0OOOOO00OO(40460), lambda: self.lbl_result.config(text=""), ) def show_success(self): tskfek = 824 onlkuh = 708 if tskfek + onlkuh == 1532: for widget in self.root.winfo_children(): widget.destroy() lozzpx = 991 fldacx = 295 if ((lozzpx ^ fldacx) ^ fldacx) == lozzpx: lbl_ok = tk.Label( self.root, text=llIlIIllllIl("nJ6emI6O/ZqPnJOJmJk="), font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39364), llIlIIllllIl("v7KxuQ=="), ), bg=llIlIIllllIl("/u257bntuQ=="), fg=llIlIIllllIl("/u3tu7vp7A=="), ) lbl_ok.pack( pady=( OO0OOOOO00OO(39308), OO0OOOOO00OO(39382), ) ) polqfa = 314 kbxtyn = 347 if ((polqfa ^ kbxtyn) ^ kbxtyn) == polqfa: lbl_info = tk.Label( self.root, text=llIlIIllllIl("iJONnJ6WkJg="), font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39362), llIlIIllllIl("v7KxuQ=="), ), bg=llIlIIllllIl("/u257bntuQ=="), fg=llIlIIllllIl("/ru77e3o6A=="), ) lbl_info.pack( pady=OO0OOOOO00OO(39368), ) ihqpth = 720 rxmbkb = 830 if ihqpth + rxmbkb == 1550: btn_exit = tk.Button( self.root, text=llIlIIllllIl("mIWUiQ=="), font=( llIlIIllllIl("nrKor7S4r/2TuKo="), OO0OOOOO00OO(39376), llIlIIllllIl("v7KxuQ=="), ), bg=llIlIIllllIl("/ru77e3o6A=="), fg=llIlIIllllIl("v7KxuQ=="), command=self.root.destroy, ) btn_exit.pack(pady=OO0OOOOO00OO(39412)) if __name__ == llIlIIllllIl("goKwvLSzgoI="): root = tk.Tk() app = LoginApp(root) root.mainloop()
Cleaned:
Python:import os import ctypes import tkinter as tk import hashlib TARGET_HASH = "1" // test amacli 1 olarak degistirildi def check_debugger(): if os.name == "nt": k32 = ctypes.windll.kernel32 if k32.IsDebuggerPresent(): os._exit(1) is_debugger = ctypes.c_bool(False) k32.CheckRemoteDebuggerPresent( k32.GetCurrentProcess(), ctypes.byref(is_debugger), ) if is_debugger.value: os._exit(1) elif os.name == "posix": try: with open("/proc/self/status", "r") as f: for line in f: if line.startswith("TracerPid:"): pid = int(line.split()[1]) if pid != 0: os._exit(1) break except (IOError, ValueError): pass class LoginApp: def __init__(self, root: tk.Tk): self.root = root self.root.title("SECURE LOGIN SYSTEM") self.root.geometry("400x300") self.root.configure(bg="#0d0d0d") self.root.resizable(False, False) self.lbl_title = tk.Label( root, text="SECURE LOGIN", font=("Courier New", 20, "bold"), bg="#0d0d0d", fg="#00ff41", ) self.lbl_title.pack(pady=(40, 5)) self.lbl_subtitle = tk.Label( root, text="UNPACK MEE", font=("Courier New", 10), bg="#0d0d0d", fg="#00ff41", ) self.lbl_subtitle.pack(pady=(0, 20)) self.entry_key = tk.Entry( root, font=("Courier New", 14), justify="center", bg="black", fg="white", insertbackground="white", relief="flat", ) self.entry_key.config( highlightbackground="#00ff41", highlightcolor="#00ff41", highlightthickness=1, ) self.entry_key.pack(ipady=5, ipadx=5, pady=10) self.entry_key.bind("<Return>", self.check_key) self.btn_login = tk.Button( root, text="LOGIN", font=("Courier New", 12, "bold"), bg="#00ff41", fg="black", activebackground="white", activeforeground="black", relief="flat", command=self.check_key, ) self.btn_login.pack(pady=20, ipadx=20) self.lbl_result = tk.Label( root, text="", font=("Courier New", 18, "bold"), bg="#0d0d0d", ) self.lbl_result.pack(pady=10) def check_key(self, event=None): key = self.entry_key.get() hashed_input = "1" if hashed_input == TARGET_HASH: self.show_success() return self.lbl_result.config(text="ACCESS DENIED", fg="red") self.root.after(2000, lambda: self.lbl_result.config(text="")) def show_success(self): for widget in self.root.winfo_children(): widget.destroy() lbl_ok = tk.Label( self.root, text="ACCESS GRANTED", font=("Courier New", 24, "bold"), bg="#0d0d0d", fg="#00ff41", ) lbl_ok.pack(pady=(80, 10)) lbl_info = tk.Label( self.root, text="UNPACKME", font=("Courier New", 30, "bold"), bg="#0d0d0d", fg="#ff0055", ) lbl_info.pack(pady=(20, 10)) btn_exit = tk.Button( self.root, text="EXIT", font=("Courier New", 12, "bold"), bg="#ff0055", fg="#00ff41", command=self.root.destroy, ) btn_exit.pack(pady=(40, 0)) if __name__ == "__main__": check_debugger() root = tk.Tk() app = LoginApp(root) root.mainloop()