{"id":323039,"date":"2021-05-13T09:01:46","date_gmt":"2021-05-13T09:01:46","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=323039"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=323039","title":{"rendered":"\u041f\u0438\u0448\u0435\u043c \u043b\u043e\u043a\u0435\u0440 \u0434\u043b\u044f Windows \u043d\u0430 Python 3.x"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u0438\u0442\u043e\u043d\u0430. \u041a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437 \u044f \u043d\u0435\u0432\u0437\u043d\u0430\u0447\u0430\u0439 \u0441\u0443\u043d\u0443\u043b \u043f\u0430\u043b\u0435\u0446 \u0432 ctypes. \u0418 \u0437\u043d\u0430\u0435\u0442\u0435, \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0431\u043b\u043e\u043a \u0432\u0432\u043e\u0434\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u043c\u044b\u0448\u0438. \u0418 \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043c\u043d\u0435 \u0441\u0431\u0440\u0435\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443,-&nbsp;&#171;\u0410 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u043a\u0435\u0440 \u0434\u043b\u044f&nbsp;\u0432\u0438\u043d\u0434\u044b&nbsp;\u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435, \u0441 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043f\u043e \u0444\u043b\u0435\u0448\u043a\u0435, \u043a\u0430\u043a \u043a\u043b\u044e\u0447\u043e\u043c&#187; (\u041d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e, \u044f \u0441\u0430\u043c \u043d\u0435 \u0437\u043d\u0430\u044e). \u0418 \u0442\u0443\u0442 \u043f\u043e\u0448\u043b\u043e \u043f\u043e\u0435\u0445\u0430\u043b\u043e \u043c\u043e\u0451 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u044f \u0440\u0430\u0441\u043f\u0438\u0448\u0443 \u0441 \u0447\u0435\u043c \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f.  <\/p>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c!<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u043a\u0435\u0440\u0430. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u0436\u0435 \u043c\u044b \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0443\u043f\u043e \u0431\u0435\u043b\u044b\u0439 \u043b\u0438\u0441\u0442 :d<br \/>\u041d\u0430\u0437\u043e\u0432\u0451\u043c . . . <em>locker.pyw<\/em><\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 pyw? \u0414\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043b\u043e\u043a\u0435\u0440\u0430 \u0432\u044b\u043b\u0435\u0437\u0435\u0442 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u043e\u0445\u043e\u0439 \u0434\u044f\u0434\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043a\u0440\u044b\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u0438 \u0432\u0435\u0441\u044c \u043b\u043e\u043a\u0435\u0440 \u043d\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f, \u0430 \u043e\u043d\u043e \u043d\u0430\u043c \u043d\u0435 \u043d\u0430\u0434\u043e. <\/p>\n<pre><code class=\"python\">import hashlib import time import sys import os from tkinter import Tk, Entry, Label import tkinter import pyautogui import threading from lofu import *<\/code><\/pre>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f <em>locker.pyw <\/em><\/p>\n<blockquote>\n<p>* hashlib \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u0432 \u0445\u044d\u0448 \u0432\u0438\u0434\u0435, \u0442\u0430\u043a \u043c\u0435\u043d\u044c\u0448\u0435 \u0448\u0430\u043d\u0441\u043e\u0432 \u043d\u0430 \u043b\u043e\u043c (\u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c!)<\/p>\n<p>* time \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f sleep()<\/p>\n<p>* sys \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0430 exit()<\/p>\n<p>* os \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0430\u0441\u0442\u0438 \u043b\u043e\u043a\u0435\u0440\u0430 system()<\/p>\n<p>* tkinter \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0448\u0430 \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c<\/p>\n<p>* pyautogui \u0434\u043b\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u0432 \u0443\u0433\u043e\u043b (\u043f\u0443\u0441\u0442\u044c \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0442 \u043d\u0430\u0434 \u0441\u0432\u043e\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c)<\/p>\n<p>* threading \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438 (\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043c\u0435\u0448\u0430\u043b\u0430\u0441\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0442\u043e\u043a\u0443)<\/p>\n<p>* lofu . . . . \u044f \u043d\u0430\u043a\u0438\u043d\u0443\u043b \u043f\u0430\u0440\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0430\u0439\u043b \u0438 \u0432\u0441\u0451, \u044f \u0445\u0443\u0434\u043e\u0436\u043d\u0438\u043a, \u044f \u0442\u0430\u043a \u0432\u0438\u0436\u0443!<\/p>\n<\/blockquote>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0430\u0436\u0430\u0442\u044c.<\/p>\n<pre><code class=\"python\">def mouse_trac(screen_width, screen_height): \twhile True: \t\tpyautogui.moveTo(screen_width, screen_height)<\/code><\/pre>\n<blockquote>\n<p>pyautogui.moveTo(screen_width, screen_height) &#8212; \u0441\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u0443\u0440\u0441\u043e\u0440 \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 \u043f\u0440\u0430\u0432\u044b\u0439 \u043d\u0438\u0436\u043d\u0438\u0439 \u0443\u0433\u043e\u043b, \u0447\u0442\u043e \u0440\u0430\u0432\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c \u044d\u043a\u0440\u0430\u043d\u0430)<\/p>\n<\/blockquote>\n<p>screen_width,  screen_height \u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<br \/>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c Tk(), \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0430\u0444 \u043d\u0430\u0447\u0438\u043d\u043a\u0443, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<\/p>\n<pre><code class=\"python\">root = Tk()  root.attributes('-fullscreen', True) pyautogui.FAILSAFE = False screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight()<\/code><\/pre>\n<blockquote>\n<p>root.attributes(&#8216;-fullscreen&#8217;, True) &#8212; \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043d\u0430\u0448\u0443 \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.<\/p>\n<p>pyautogui.FAILSAFE = False &#8212; \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0437\u0430\u0449\u0438\u0442\u0443, \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u044f\u043c\u044b\u0445 \u0440\u0443\u043a.<\/p>\n<p>screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() &#8212; \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u0448\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u043a\u0440\u0430\u043d\u0430<\/p>\n<\/blockquote>\n<p>\u0412\u043e\u0442 \u043c\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u043a\u0440\u0430\u043d\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a<\/p>\n<pre><code class=\"python\">x = threading.Thread(target=mouse_trac, args=(screen_width, screen_height), daemon=True) x.start()<\/code><\/pre>\n<blockquote>\n<p>target=mouse_trac &#8212; \u0446\u0435\u043b\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043a<\/p>\n<p>args=(screen_width, screen_height) &#8212; \u043a\u0430\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<p>daemon=True &#8212; \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043e \u0432\u0441\u0435\u0445 \u0438\u043b\u0438 \u043f\u043e\u043e\u0447\u0435\u0440\u0451\u0434\u043d\u043e<\/p>\n<p><a href=\"https:\/\/docs.python.org\/3\/library\/threading.html#\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043a Threading<\/a><\/p>\n<\/blockquote>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0433\u0440\u0430\u0444 \u043d\u0430\u0447\u0438\u043d\u043a\u0443<\/p>\n<pre><code class=\"python\">label = Label(root, text='Enter flesh drive with code!', font='Courier 15', fg='#C71585') label.place(relx=.5, rely=.94, anchor=\"center\")  label3 = Label(root, text='USBCODE waiting...', font='Courier 20', fg='#00BFFF') label3.place(relx=.5, rely=.40, anchor=\"center\")  label4 = Label(root, text='Powered by .... wait....by who?', font='Courier 15', fg='#C71585') label4.place(relx=.1, rely=.95, anchor=\"center\")  root.update()<\/code><\/pre>\n<blockquote>\n<p>label = Label(root, text=&#8217;Enter flesh drive with code!&#8217;, font=&#8217;Courier 15&#8242;, fg=&#8217;#C71585&#8242;) label.place(relx=.5, rely=.94, anchor=&#187;center&#187;) &#8212; \u044d\u0442\u043e \u043d\u0430\u0448\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0430 <\/p>\n<p>root &#8212; \u043a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c<\/p>\n<p>text &#8212; \u043d\u0443 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u0442\u0435\u043a\u0441\u0442 :G<\/p>\n<p>font &#8212; \u0440\u0430\u0437\u043c\u0435\u0440\u044b<\/p>\n<p>fg &#8212; \u0446\u0432\u0435\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 HTML \u0446\u0432\u0435\u0442\u043e\u0432 ( <a href=\"https:\/\/colorscheme.ru\/html-colors.html\" rel=\"noopener noreferrer nofollow\">https:\/\/colorscheme.ru\/html-colors.html<\/a> )<\/p>\n<p>relx &#8212; \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0433\u043e \u043b\u0438\u0431\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e X<\/p>\n<p>rely &#8212; \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0433\u043e \u043b\u0438\u0431\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e Y<\/p>\n<p>anchor=&#187;center&#187; &#8212; \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0442\u0435\u043a\u0441\u0442<\/p>\n<p>root.update() &#8212; \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c (\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0447\u0442\u043e \u044d\u0442\u043e CTRL+S)<\/p>\n<p><a href=\"https:\/\/docs.python.org\/3\/library\/tkinter.html\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Tkinter<\/a><\/p>\n<\/blockquote>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u043e\u043a\u0435\u0440 \u0432\u0432\u043e\u0434\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u043c\u044b\u0448\u0438. <br \/>\u0412\u043e\u0442 \u0442\u0443\u0442 \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u043a\u043e\u0441\u0442\u044b\u043b\u044c.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043f\u0440\u0430\u0432\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u043a, \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u044b\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e &#171;\u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432&#187; \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0442\u0435\u043c \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u0451\u0442 \u0441\u0430\u043c\u0430 windows. \u0412 windows \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 &#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;. \u041c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u0440\u0435\u0448\u0430\u0442\u044c, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u0438\u043b\u0438 \u043d\u0435\u0442. \u0410 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043c\u044b \u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438\u0437 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0441 \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 (\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 \u0437\u0430\u0434\u0430\u0447, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432, \u0447\u0442\u043e \u043d\u0430\u043c \u0438 \u043d\u0443\u0436\u043d\u043e ).<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/189\/e87\/7cb\/189e877cbcb14d2e03bfa18bf12be879.png\" width=\"250\" height=\"278\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <em>&#171;\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u0412 \u043f\u043e\u043b\u0435 <em>&#171;\u0418\u043c\u044f&#187;<\/em> \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0432\u043e\u0439 \u043a\u0430\u043f\u0440\u0438\u0437 \u043b\u044e\u0431\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0438\u0442\u043d\u043e)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043d\u0438\u0437\u0443 <strong>\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/strong> \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0433\u0430\u043b\u043e\u0447\u043a\u0443 <em>&#171;\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441 \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438&#187;<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/14c\/d49\/5ab\/14cd495ab22a200fe4cbf41b6e6897df.png\" width=\"627\" height=\"472\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0412\u0441\u0451, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <em>&#171;\u041e\u0431\u0449\u0438\u0435&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <em>&#171;\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b : <em>&#171;\u041f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443&#187;<\/em> \u0438 <em>&#171;\u041e\u0434\u0438\u043d \u0440\u0430\u0437<\/em> (\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043a\u0430\u0436\u0434\u044b\u0435 1 \u043c\u0438\u043d\u0443\u0442\u0443,  \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0411\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e)<em>&#171;<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12f\/e12\/8ac\/12fe128acfa29a5fd9eb7337eebc944f.png\" width=\"622\" height=\"472\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <em>&#171;\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 <em>&#171;\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b&#187;<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ba\/816\/2e3\/4ba8162e3dbe89b81a6c567313c4dd7b.png\" width=\"620\" height=\"474\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u043e\u043f! \u0427\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c? . . .<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0430\u0439\u043b \u0441 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435. \u041d\u0430\u0437\u043e\u0432\u0451\u043c \u0435\u0433\u043e <em>input_block.pyw<\/em><\/p>\n<pre><code class=\"python\">from ctypes import * import time import sys from lofu import *  while True: \tstatusl = status_lock() \tif str(statusl) == '0': \t\twindll.user32.BlockInput(False) \telif str(statusl) == '1': \t\twindll.user32.BlockInput(True)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0434\u0435\u043b\u0430\u0435\u043c lofu<\/p>\n<pre><code class=\"python\">def status_lock(): \tfilee = open(r'\u041f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430', 'r') \treturn filee.read() \tfilee.close()  def disable_lock(): \tfilee = open(r'\u041f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430', 'w') \ttext = 0 \tfilee.write(str(text)) \tfilee.close()  def enable_lock(): \tfilee = open(r'\u041f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430', 'w') \ttext = 1 \tfilee.write(str(text)) \tfilee.close()<\/code><\/pre>\n<p>\u0414\u0430, \u0434\u0430 \u044f \u0437\u043d\u0430\u044e \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c: &#171;\u0424\u0423\u0423\u0423\u0423 \u042e\u0417\u0410\u0415\u0428\u042c \u0422\u0423\u041f\u0410 \u0424\u0410\u0419\u041b, \u041a\u0410\u041a \u0422\u0410\u041a \u041c\u041e\u0416\u041d\u041e? \u0412\u0421\u0415 \u0414\u0410\u0412\u041d\u041e \u041b\u0418\u0411\u041e \u041b\u041e\u041a\u0410\u041b\u042c\u041d\u0423\u042e \u0411\u0414 \u041b\u0418\u0411\u041e JSON \u0418\u0421\u041f\u041e\u041b\u042c\u0417\u0423\u042e\u0422! \u041c\u0423\u0421\u041e\u0420!&#187;<\/p>\n<p>\u0412\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u044e\u0437\u0430\u0442\u044c json, sqlite3 \u0438 \u0442\u0434. \u042d\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0443\u0442\u0438. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0444\u0430\u0439\u043b. \u0412\u0441\u0451!<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 <em>input_block.pyw<\/em> &gt;&gt; <em>input_block.exe<\/em><br \/>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c pyinstaller<\/p>\n<pre><code>pyinstall input_block.pyw --onefile<\/code><\/pre>\n<p>\u0427\u0442\u043e? \u041d\u0435\u0442 pyinstaller?<\/p>\n<pre><code>pip install pyinstaller<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u0435\u043b\u0430\u0435\u043c \u044f\u0440\u043b\u044b\u043a \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0435\u043c\u0443 \u0444\u043b\u0430\u0436\u043e\u043a <em>&#171;\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430&#187;.<\/em><\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a <em>&#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;<\/em> \u0438 \u0432 \u043f\u043e\u043b\u0435 <em>&#171;\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043b\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439&#187;<\/em> \u0432\u0432\u043e\u0434\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u0434\u043e \u044f\u0440\u043b\u044b\u043a\u0430.<\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 <em>locker.pyw <\/em><\/p>\n<pre><code class=\"python\">os.system('schtasks.exe \/run \/tn \"\u0418\u041c\u042f \u0412\u0410\u0428\u0415\u0419 \u0417\u0410\u0414\u0410\u0427\u0418 \u0412 \u041f\u041b\u0410\u041d\u0418\u0420\u041e\u0412\u0429\u0418\u041a\u0415 \u0417\u0410\u0414\u0410\u041d\u0418\u0419\"')<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u044c \u0434\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443<\/p>\n<pre><code class=\"python\">while True: \ttry: \t\tenable_lock() \t\tfile = open(r'F:\\key.txt','r') \t\tfile_t = str(file.read()) \t\tfile.close() \t\thash_object = hashlib.sha256(file_t.encode()) \t\thex_dig = hash_object.hexdigest() \t\tif '\u0412\u0410\u0428 \u0425\u0415\u0428-\u041a\u041b\u042e\u0427' == str(hex_dig): \t\t\tlabel3.configure(text='USBCODE correct. Unlocking...', fg='#00FF00', font=\"Courier 30\") \t\t\troot.update() \t\t\ttime.sleep(4) \t\t\tdisable_lock() \t\t\tsys.exit() \t\telse: \t\t\tlabel3.configure(text='USBCODE incorrect. Try again!', fg='#FF0000', font=\"Courier 30\") \t\t\tenable_lock() \t\t\troot.update() \texcept SystemExit: \t\tsys.exit() \texcept: \t\ttime.sleep(10) \t\tlabel3.configure(text='USBCODE not found! Waiting...', fg='#FF1493', font=\"Courier 20\") \t\tenable_lock() \t\troot.update()<\/code><\/pre>\n<p>\u0422\u0443\u0442 \u0443\u0436\u0435 \u043d\u0430 \u0432\u043a\u0443\u0441, \u043a\u043e\u043c\u0443 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f. \u0420\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438, \u0442\u0435\u043a\u0441\u0442<\/p>\n<blockquote>\n<p>enable_lock() &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f lofu \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043b\u043e\u043a \u0432\u0432\u043e\u0434\u0430<\/p>\n<p>disable_lock() &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f lofu \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435-\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043b\u043e\u043a \u0432\u0432\u043e\u0434\u0430<\/p>\n<p>time.sleep(N) &#8212; \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430<\/p>\n<p>file = open(r&#8217;F:\\key.txt&#8217;,&#8217;r&#8217;)         <br \/>file_t = str(file.read())         <br \/>file.close() &#8212; \u0447\u0438\u0442\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u043d\u0430 \u0444\u043b\u0435\u0448\u043a\u0435 \u0441 \u043d\u0430\u0448\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u0435\u0441\u043b\u0438 \u043e\u043d \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0435\u0441\u0442\u044c<\/p>\n<p>hash_object = hashlib.sha256(file_t.encode())         <br \/>hex_dig = hash_object.hexdigest() &#8212; \u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0441\u0430\u043c\u0430 \u0445\u044d\u0448 \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<p>if &#8216;\u0412\u0410\u0428 \u0425\u0415\u0428&#8217; == str(hex_dig): &#8212; \u044f \u0432\u0430\u043c \u0447\u0442\u043e \u0435\u0449\u0451 \u043a\u0430\u043a \u0438\u0444 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0434\u043e\u043b\u0436\u0435\u043d :d<br \/>\u0425\u044d\u0448 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e:<br \/>* \u041f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e (\u0414\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u0431\u044b\u043b\u0438, \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438, \u0443\u0442\u043e\u043f\u0438\u043b\u0438 \u0444\u043b\u0435\u0448\u043a\u0443)<br \/>* \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0445\u044d\u0448 \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 (\u042d\u0442\u043e \u043a\u043b\u044e\u0447 \u0432\u0430\u0448\u0435\u0439 \u0444\u043b\u0435\u0448\u043a\u0438)<br \/>* \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0445\u044d\u0448 \u0432\u0430\u0448\u0435\u0433\u043e \u0445\u0435\u0448\u0430 (\u042d\u0442\u043e \u0445\u044d\u0448-\u043a\u043b\u044e\u0447 \u0432 <em>locker.pyw<\/em>)<\/p>\n<\/blockquote>\n<p>\u0412\u0441\u0451, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u0430\u0432\u0442\u043e\u0441\u0442\u0430\u0440\u0442\u0435 <em>locker.pyw<\/em>. <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0435\u0441\u0442\u0440, shell:startup, \u0434\u0430 \u0434\u0430\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 <em>&#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;<\/em>.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451. \u042f \u0432\u0430\u0441 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e! \u041c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 <strong>\u043b\u043e\u043a\u0435\u0440 \u0434\u043b\u044f Windows \u043d\u0430 Python 3.x c \u043f\u043e\u043b\u043d\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0432\u0432\u043e\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 <em>&#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;<\/em>, \u0441 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u043b\u0435\u0448\u043a\u0443, \u0441 \u0445\u044d\u0448 \u043a\u043b\u044e\u0447\u043e\u043c \u0438 \u0433\u0440\u0430\u0444 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c!<br \/><\/strong><br \/>P.S. \u043c\u043e\u0436\u043d\u043e \u0435\u0449\u0451 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u044f\u0440\u043b\u044b\u043a <em>locker.pyw<\/em> \u0432 \u043f\u043e\u043b\u0435 <em>&#171;\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0432\u044b\u0437\u043e\u0432&#187;<\/em> \u0431\u0438\u043d\u0434 \u043a\u043b\u0430\u0432\u0438\u0448 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/557134\/\"> https:\/\/habr.com\/ru\/post\/557134\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u0438\u0442\u043e\u043d\u0430. \u041a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437 \u044f \u043d\u0435\u0432\u0437\u043d\u0430\u0447\u0430\u0439 \u0441\u0443\u043d\u0443\u043b \u043f\u0430\u043b\u0435\u0446 \u0432 ctypes. \u0418 \u0437\u043d\u0430\u0435\u0442\u0435, \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0431\u043b\u043e\u043a \u0432\u0432\u043e\u0434\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u043c\u044b\u0448\u0438. \u0418 \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043c\u043d\u0435 \u0441\u0431\u0440\u0435\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443,-&nbsp;&#171;\u0410 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u043a\u0435\u0440 \u0434\u043b\u044f&nbsp;\u0432\u0438\u043d\u0434\u044b&nbsp;\u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435, \u0441 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043f\u043e \u0444\u043b\u0435\u0448\u043a\u0435, \u043a\u0430\u043a \u043a\u043b\u044e\u0447\u043e\u043c&#187; (\u041d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e, \u044f \u0441\u0430\u043c \u043d\u0435 \u0437\u043d\u0430\u044e). \u0418 \u0442\u0443\u0442 \u043f\u043e\u0448\u043b\u043e \u043f\u043e\u0435\u0445\u0430\u043b\u043e \u043c\u043e\u0451 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u044f \u0440\u0430\u0441\u043f\u0438\u0448\u0443 \u0441 \u0447\u0435\u043c \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f.  <\/p>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c!<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u043a\u0435\u0440\u0430. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u0436\u0435 \u043c\u044b \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0443\u043f\u043e \u0431\u0435\u043b\u044b\u0439 \u043b\u0438\u0441\u0442 :d<br \/>\u041d\u0430\u0437\u043e\u0432\u0451\u043c . . . <em>locker.pyw<\/em><\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 pyw? \u0414\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043b\u043e\u043a\u0435\u0440\u0430 \u0432\u044b\u043b\u0435\u0437\u0435\u0442 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u043e\u0445\u043e\u0439 \u0434\u044f\u0434\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043a\u0440\u044b\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u0438 \u0432\u0435\u0441\u044c \u043b\u043e\u043a\u0435\u0440 \u043d\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f, \u0430 \u043e\u043d\u043e \u043d\u0430\u043c \u043d\u0435 \u043d\u0430\u0434\u043e. <\/p>\n<pre><code class=\"python\">import hashlib import time import sys import os from tkinter import Tk, Entry, Label import tkinter import pyautogui import threading from lofu import *<\/code><\/pre>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f <em>locker.pyw <\/em><\/p>\n<blockquote>\n<p>* hashlib \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u0432 \u0445\u044d\u0448 \u0432\u0438\u0434\u0435, \u0442\u0430\u043a \u043c\u0435\u043d\u044c\u0448\u0435 \u0448\u0430\u043d\u0441\u043e\u0432 \u043d\u0430 \u043b\u043e\u043c (\u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c!)<\/p>\n<p>* time \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f sleep()<\/p>\n<p>* sys \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0430 exit()<\/p>\n<p>* os \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0430\u0441\u0442\u0438 \u043b\u043e\u043a\u0435\u0440\u0430 system()<\/p>\n<p>* tkinter \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0448\u0430 \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c<\/p>\n<p>* pyautogui \u0434\u043b\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u0432 \u0443\u0433\u043e\u043b (\u043f\u0443\u0441\u0442\u044c \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0442 \u043d\u0430\u0434 \u0441\u0432\u043e\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c)<\/p>\n<p>* threading \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438 (\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043c\u0435\u0448\u0430\u043b\u0430\u0441\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0442\u043e\u043a\u0443)<\/p>\n<p>* lofu . . . . \u044f \u043d\u0430\u043a\u0438\u043d\u0443\u043b \u043f\u0430\u0440\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0430\u0439\u043b \u0438 \u0432\u0441\u0451, \u044f \u0445\u0443\u0434\u043e\u0436\u043d\u0438\u043a, \u044f \u0442\u0430\u043a \u0432\u0438\u0436\u0443!<\/p>\n<\/blockquote>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0430\u0436\u0430\u0442\u044c.<\/p>\n<pre><code class=\"python\">def mouse_trac(screen_width, screen_height): \twhile True: \t\tpyautogui.moveTo(screen_width, screen_height)<\/code><\/pre>\n<blockquote>\n<p>pyautogui.moveTo(screen_width, screen_height) &#8212; \u0441\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u0443\u0440\u0441\u043e\u0440 \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 \u043f\u0440\u0430\u0432\u044b\u0439 \u043d\u0438\u0436\u043d\u0438\u0439 \u0443\u0433\u043e\u043b, \u0447\u0442\u043e \u0440\u0430\u0432\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c \u044d\u043a\u0440\u0430\u043d\u0430)<\/p>\n<\/blockquote>\n<p>screen_width,  screen_height \u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<br \/>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c Tk(), \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0430\u0444 \u043d\u0430\u0447\u0438\u043d\u043a\u0443, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430<\/p>\n<pre><code class=\"python\">root = Tk()  root.attributes('-fullscreen', True) pyautogui.FAILSAFE = False screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight()<\/code><\/pre>\n<blockquote>\n<p>root.attributes(&#8216;-fullscreen&#8217;, True) &#8212; \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043d\u0430\u0448\u0443 \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.<\/p>\n<p>pyautogui.FAILSAFE = False &#8212; \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0437\u0430\u0449\u0438\u0442\u0443, \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u044f\u043c\u044b\u0445 \u0440\u0443\u043a.<\/p>\n<p>screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() &#8212; \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u0448\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u043a\u0440\u0430\u043d\u0430<\/p>\n<\/blockquote>\n<p>\u0412\u043e\u0442 \u043c\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u043a\u0440\u0430\u043d\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a<\/p>\n<pre><code class=\"python\">x = threading.Thread(target=mouse_trac, args=(screen_width, screen_height), daemon=True) x.start()<\/code><\/pre>\n<blockquote>\n<p>target=mouse_trac &#8212; \u0446\u0435\u043b\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043a<\/p>\n<p>args=(screen_width, screen_height) &#8212; \u043a\u0430\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<p>daemon=True &#8212; \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043e \u0432\u0441\u0435\u0445 \u0438\u043b\u0438 \u043f\u043e\u043e\u0447\u0435\u0440\u0451\u0434\u043d\u043e<\/p>\n<p><a href=\"https:\/\/docs.python.org\/3\/library\/threading.html#\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043a Threading<\/a><\/p>\n<\/blockquote>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0433\u0440\u0430\u0444 \u043d\u0430\u0447\u0438\u043d\u043a\u0443<\/p>\n<pre><code class=\"python\">label = Label(root, text='Enter flesh drive with code!', font='Courier 15', fg='#C71585') label.place(relx=.5, rely=.94, anchor=\"center\")  label3 = Label(root, text='USBCODE waiting...', font='Courier 20', fg='#00BFFF') label3.place(relx=.5, rely=.40, anchor=\"center\")  label4 = Label(root, text='Powered by .... wait....by who?', font='Courier 15', fg='#C71585') label4.place(relx=.1, rely=.95, anchor=\"center\")  root.update()<\/code><\/pre>\n<blockquote>\n<p>label = Label(root, text=&#8217;Enter flesh drive with code!&#8217;, font=&#8217;Courier 15&#8242;, fg=&#8217;#C71585&#8242;) label.place(relx=.5, rely=.94, anchor=&#187;center&#187;) &#8212; \u044d\u0442\u043e \u043d\u0430\u0448\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0430 <\/p>\n<p>root &#8212; \u043a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c<\/p>\n<p>text &#8212; \u043d\u0443 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u0442\u0435\u043a\u0441\u0442 :G<\/p>\n<p>font &#8212; \u0440\u0430\u0437\u043c\u0435\u0440\u044b<\/p>\n<p>fg &#8212; \u0446\u0432\u0435\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 HTML \u0446\u0432\u0435\u0442\u043e\u0432 ( <a href=\"https:\/\/colorscheme.ru\/html-colors.html\" rel=\"noopener noreferrer nofollow\">https:\/\/colorscheme.ru\/html-colors.html<\/a> )<\/p>\n<p>relx &#8212; \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0433\u043e \u043b\u0438\u0431\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e X<\/p>\n<p>rely &#8212; \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0433\u043e \u043b\u0438\u0431\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e Y<\/p>\n<p>anchor=&#187;center&#187; &#8212; \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0442\u0435\u043a\u0441\u0442<\/p>\n<p>root.update() &#8212; \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c (\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0447\u0442\u043e \u044d\u0442\u043e CTRL+S)<\/p>\n<p><a href=\"https:\/\/docs.python.org\/3\/library\/tkinter.html\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Tkinter<\/a><\/p>\n<\/blockquote>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u043e\u043a\u0435\u0440 \u0432\u0432\u043e\u0434\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u043c\u044b\u0448\u0438. <br \/>\u0412\u043e\u0442 \u0442\u0443\u0442 \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u043a\u043e\u0441\u0442\u044b\u043b\u044c.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043f\u0440\u0430\u0432\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u043a, \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u044b\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e &#171;\u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432&#187; \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0442\u0435\u043c \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u0451\u0442 \u0441\u0430\u043c\u0430 windows. \u0412 windows \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 &#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;. \u041c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u0440\u0435\u0448\u0430\u0442\u044c, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u0438\u043b\u0438 \u043d\u0435\u0442. \u0410 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043c\u044b \u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438\u0437 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0441 \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 (\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 \u0437\u0430\u0434\u0430\u0447, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432, \u0447\u0442\u043e \u043d\u0430\u043c \u0438 \u043d\u0443\u0436\u043d\u043e ).<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <em>&#171;\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u0412 \u043f\u043e\u043b\u0435 <em>&#171;\u0418\u043c\u044f&#187;<\/em> \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0432\u043e\u0439 \u043a\u0430\u043f\u0440\u0438\u0437 \u043b\u044e\u0431\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0438\u0442\u043d\u043e)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043d\u0438\u0437\u0443 <strong>\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/strong> \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0433\u0430\u043b\u043e\u0447\u043a\u0443 <em>&#171;\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441 \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438&#187;<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"float full-width\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0412\u0441\u0451, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <em>&#171;\u041e\u0431\u0449\u0438\u0435&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <em>&#171;\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b : <em>&#171;\u041f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443&#187;<\/em> \u0438 <em>&#171;\u041e\u0434\u0438\u043d \u0440\u0430\u0437<\/em> (\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043a\u0430\u0436\u0434\u044b\u0435 1 \u043c\u0438\u043d\u0443\u0442\u0443,  \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0411\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e)<em>&#171;<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"float full-width\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <em>&#171;\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f&#187;<\/em><\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 <em>&#171;\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b&#187;<\/em><\/p>\n<\/li>\n<\/ul>\n<figure class=\"float full-width\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u043e\u043f! \u0427\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c? . . .<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0430\u0439\u043b \u0441 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435. \u041d\u0430\u0437\u043e\u0432\u0451\u043c \u0435\u0433\u043e <em>input_block.pyw<\/em><\/p>\n<pre><code class=\"python\">from ctypes import * import time import sys from lofu import *  while True: \tstatusl = status_lock() \tif str(statusl) == '0': \t\twindll.user32.BlockInput(False) \telif str(statusl) == '1': \t\twindll.user32.BlockInput(True)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0434\u0435\u043b\u0430\u0435\u043c lofu<\/p>\n<pre><code class=\"python\">def status_lock(): \tfilee = open(r'\u041f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430', 'r') \treturn filee.read() \tfilee.close()  def disable_lock(): \tfilee = open(r'\u041f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430', 'w') \ttext = 0 \tfilee.write(str(text)) \tfilee.close()  def enable_lock(): \tfilee = open(r'\u041f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430', 'w') \ttext = 1 \tfilee.write(str(text)) \tfilee.close()<\/code><\/pre>\n<p>\u0414\u0430, \u0434\u0430 \u044f \u0437\u043d\u0430\u044e \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c: &#171;\u0424\u0423\u0423\u0423\u0423 \u042e\u0417\u0410\u0415\u0428\u042c \u0422\u0423\u041f\u0410 \u0424\u0410\u0419\u041b, \u041a\u0410\u041a \u0422\u0410\u041a \u041c\u041e\u0416\u041d\u041e? \u0412\u0421\u0415 \u0414\u0410\u0412\u041d\u041e \u041b\u0418\u0411\u041e \u041b\u041e\u041a\u0410\u041b\u042c\u041d\u0423\u042e \u0411\u0414 \u041b\u0418\u0411\u041e JSON \u0418\u0421\u041f\u041e\u041b\u042c\u0417\u0423\u042e\u0422! \u041c\u0423\u0421\u041e\u0420!&#187;<\/p>\n<p>\u0412\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u044e\u0437\u0430\u0442\u044c json, sqlite3 \u0438 \u0442\u0434. \u042d\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0443\u0442\u0438. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0444\u0430\u0439\u043b. \u0412\u0441\u0451!<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 <em>input_block.pyw<\/em> &gt;&gt; <em>input_block.exe<\/em><br \/>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c pyinstaller<\/p>\n<pre><code>pyinstall input_block.pyw --onefile<\/code><\/pre>\n<p>\u0427\u0442\u043e? \u041d\u0435\u0442 pyinstaller?<\/p>\n<pre><code>pip install pyinstaller<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u0435\u043b\u0430\u0435\u043c \u044f\u0440\u043b\u044b\u043a \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0435\u043c\u0443 \u0444\u043b\u0430\u0436\u043e\u043a <em>&#171;\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430&#187;.<\/em><\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a <em>&#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;<\/em> \u0438 \u0432 \u043f\u043e\u043b\u0435 <em>&#171;\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043b\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439&#187;<\/em> \u0432\u0432\u043e\u0434\u0438\u043c \u0430\u0434\u0440\u0435\u0441 \u0434\u043e \u044f\u0440\u043b\u044b\u043a\u0430.<\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 <em>locker.pyw <\/em><\/p>\n<pre><code class=\"python\">os.system('schtasks.exe \/run \/tn \"\u0418\u041c\u042f \u0412\u0410\u0428\u0415\u0419 \u0417\u0410\u0414\u0410\u0427\u0418 \u0412 \u041f\u041b\u0410\u041d\u0418\u0420\u041e\u0412\u0429\u0418\u041a\u0415 \u0417\u0410\u0414\u0410\u041d\u0418\u0419\"')<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u044c \u0434\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0430\u0444 \u0447\u0430\u0441\u0442\u044c, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443<\/p>\n<pre><code class=\"python\">while True: \ttry: \t\tenable_lock() \t\tfile = open(r'F:\\key.txt','r') \t\tfile_t = str(file.read()) \t\tfile.close() \t\thash_object = hashlib.sha256(file_t.encode()) \t\thex_dig = hash_object.hexdigest() \t\tif '\u0412\u0410\u0428 \u0425\u0415\u0428-\u041a\u041b\u042e\u0427' == str(hex_dig): \t\t\tlabel3.configure(text='USBCODE correct. Unlocking...', fg='#00FF00', font=\"Courier 30\") \t\t\troot.update() \t\t\ttime.sleep(4) \t\t\tdisable_lock() \t\t\tsys.exit() \t\telse: \t\t\tlabel3.configure(text='USBCODE incorrect. Try again!', fg='#FF0000', font=\"Courier 30\") \t\t\tenable_lock() \t\t\troot.update() \texcept SystemExit: \t\tsys.exit() \texcept: \t\ttime.sleep(10) \t\tlabel3.configure(text='USBCODE not found! Waiting...', fg='#FF1493', font=\"Courier 20\") \t\tenable_lock() \t\troot.update()<\/code><\/pre>\n<p>\u0422\u0443\u0442 \u0443\u0436\u0435 \u043d\u0430 \u0432\u043a\u0443\u0441, \u043a\u043e\u043c\u0443 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f. \u0420\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438, \u0442\u0435\u043a\u0441\u0442<\/p>\n<blockquote>\n<p>enable_lock() &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f lofu \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043b\u043e\u043a \u0432\u0432\u043e\u0434\u0430<\/p>\n<p>disable_lock() &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f lofu \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435-\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043b\u043e\u043a \u0432\u0432\u043e\u0434\u0430<\/p>\n<p>time.sleep(N) &#8212; \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430<\/p>\n<p>file = open(r&#8217;F:\\key.txt&#8217;,&#8217;r&#8217;)         <br \/>file_t = str(file.read())         <br \/>file.close() &#8212; \u0447\u0438\u0442\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u043d\u0430 \u0444\u043b\u0435\u0448\u043a\u0435 \u0441 \u043d\u0430\u0448\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u0435\u0441\u043b\u0438 \u043e\u043d \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0435\u0441\u0442\u044c<\/p>\n<p>hash_object = hashlib.sha256(file_t.encode())         <br \/>hex_dig = hash_object.hexdigest() &#8212; \u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0441\u0430\u043c\u0430 \u0445\u044d\u0448 \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<p>if &#8216;\u0412\u0410\u0428 \u0425\u0415\u0428&#8217; == str(hex_dig): &#8212; \u044f \u0432\u0430\u043c \u0447\u0442\u043e \u0435\u0449\u0451 \u043a\u0430\u043a \u0438\u0444 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0434\u043e\u043b\u0436\u0435\u043d :d<br \/>\u0425\u044d\u0448 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e:<br \/>* \u041f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e (\u0414\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u0431\u044b\u043b\u0438, \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438, \u0443\u0442\u043e\u043f\u0438\u043b\u0438 \u0444\u043b\u0435\u0448\u043a\u0443)<br \/>* \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0445\u044d\u0448 \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 (\u042d\u0442\u043e \u043a\u043b\u044e\u0447 \u0432\u0430\u0448\u0435\u0439 \u0444\u043b\u0435\u0448\u043a\u0438)<br \/>* \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0445\u044d\u0448 \u0432\u0430\u0448\u0435\u0433\u043e \u0445\u0435\u0448\u0430 (\u042d\u0442\u043e \u0445\u044d\u0448-\u043a\u043b\u044e\u0447 \u0432 <em>locker.pyw<\/em>)<\/p>\n<\/blockquote>\n<p>\u0412\u0441\u0451, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u0430\u0432\u0442\u043e\u0441\u0442\u0430\u0440\u0442\u0435 <em>locker.pyw<\/em>. <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0435\u0441\u0442\u0440, shell:startup, \u0434\u0430 \u0434\u0430\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 <em>&#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;<\/em>.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451. \u042f \u0432\u0430\u0441 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e! \u041c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 <strong>\u043b\u043e\u043a\u0435\u0440 \u0434\u043b\u044f Windows \u043d\u0430 Python 3.x c \u043f\u043e\u043b\u043d\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0432\u0432\u043e\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 <em>&#171;\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439&#187;<\/em>, \u0441 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u043b\u0435\u0448\u043a\u0443, \u0441 \u0445\u044d\u0448 \u043a\u043b\u044e\u0447\u043e\u043c \u0438 \u0433\u0440\u0430\u0444 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c!<br \/><\/strong><br \/>P.S. \u043c\u043e\u0436\u043d\u043e \u0435\u0449\u0451 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u044f\u0440\u043b\u044b\u043a <em>locker.pyw<\/em> \u0432 \u043f\u043e\u043b\u0435 <em>&#171;\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0432\u044b\u0437\u043e\u0432&#187;<\/em> \u0431\u0438\u043d\u0434 \u043a\u043b\u0430\u0432\u0438\u0448 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/557134\/\"> https:\/\/habr.com\/ru\/post\/557134\/<\/a><br \/><\/br><\/br><\/p>\n<p><\/br><\/br><\/p>\n<\/p>\n<p><\/br><\/p>\n<\/blockquote>\n<\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<\/blockquote>\n<p><\/br><\/br><\/p>\n<\/blockquote>\n<\/p>\n<\/p>\n<\/p>\n<\/blockquote>\n<p><\/br><\/br><\/br><\/br><\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-323039","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/323039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=323039"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/323039\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=323039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=323039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=323039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}