• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program w PYTHONIE wykrywa jako wirus

Object Storage Arubacloud
+1 głos
308 wizyt
pytanie zadane 8 kwietnia 2022 w Python przez Hysek Obywatel (1,250 p.)
edycja 8 kwietnia 2022 przez Hysek

Witam, zacząłem robić prosty program typu 'tasker'. Ma on za zadanie nasłuchiwać kiedy na klawiaturze wcisnę dany klawisz i wykonać pewne zadanie. Oczywiście z tym nie mam żadnych problemów wszystko działa jak powinno. 

Problem Pojawił się od strony Windowsa, a mianowicie wykrywa mi ten program jako WIRUS typu keylogger ;O
 

Czy mogę coś z tym zrobić może to wina biblioteki "PYNPUT" do obsługi klawiatury i myszki. 

Proszę pomóżcie mi bo co chwile mi usuwa pliki z katalogu z projektem i musze je przywracać a jest to już dość frustrujące.

 

https://www.virustotal.com

c04706cf3bd7d0a2f54a81aa5d6afd72945b568025e8a767c974812557a2364b


kodzik dla ciekawych programu:

import threading
import time
import random
import json

from pynput import mouse, keyboard
from pynput.mouse import Button
from pynput.keyboard import Key


class Loot(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

        self.main_loop = False
        self.app_active = False
        self.pick_up_loot_active = False
        self.listener_mouse_activate = False

        self.mouse = mouse.Controller()
        self.keyboard = keyboard.Controller()

        self.new_sqm_size = []
        self.sqm_size = []
        self.sqm_list = []
        self.size_x = 0
        self.size_y = 0
        self.enum = 0

        self.hotkey = 'f'

    def listener_mouse(self):
        with mouse.Listener(on_click=self.set_sqm_size) as listener:
            listener.join()

    def set_sqm_size(self, pos_x=None, pos_y=None, button=None, pressed=None):
        if not self.listener_mouse_activate:
            self.listener_mouse_activate = True
            self.listener_mouse()

        if self.listener_mouse_activate:
            if pressed and button == mouse.Button.left and self.enum == 0:
                self.new_sqm_size.append(pos_x)
                self.enum += 1
            elif pressed and button == mouse.Button.left and self.enum == 1:
                self.new_sqm_size.append(pos_x)
                self.enum += 1
            elif pressed and button == mouse.Button.left and self.enum == 2:
                self.new_sqm_size.append(pos_y)
                self.enum += 1
            elif pressed and button == mouse.Button.left and self.enum == 3:
                self.new_sqm_size.append(pos_y)
                self.enum += 1
            elif self.enum == 4:
                self.enum = 0
                self.listener_mouse_activate = False
                self.save()
                return False

    def save(self):
        json_file = open('modules/pick_up_loot/sqm_size.json', 'r')
        json_object = json.load(json_file)
        json_file.close()

        json_object['sqm_size'] = self.new_sqm_size
        json_file = open('modules/pick_up_loot/sqm_size.json', 'w')
        json.dump(json_object, json_file, indent=2)
        json_file.close()

        self.new_sqm_size = []

    def set_sqm_list(self):
        min_pos_x = self.sqm_size[0]
        max_pos_x = self.sqm_size[1]
        min_pos_y = self.sqm_size[2]
        max_pos_y = self.sqm_size[3]

        self.size_x = max_pos_x - min_pos_x
        self.size_y = max_pos_y - min_pos_y

        central = [min_pos_x + (self.size_x / 2), min_pos_y + (self.size_y / 2)]

        w = (central[0] - self.size_x, central[1])
        nw = (central[0] - self.size_x, central[1] - self.size_y)
        n = (central[0], central[1] - self.size_y)
        ne = (central[0] + self.size_x, central[1] - self.size_y)
        e = (central[0] + self.size_x, central[1])
        se = (central[0] + self.size_x, central[1] + self.size_y)
        s = (central[0], central[1] + self.size_y)
        sw = (central[0] - self.size_x, central[1] + self.size_y)

        self.sqm_list.append(w)
        self.sqm_list.append(nw)
        self.sqm_list.append(n)
        self.sqm_list.append(ne)
        self.sqm_list.append(e)
        self.sqm_list.append(se)
        self.sqm_list.append(s)
        self.sqm_list.append(sw)

    def load(self):
        json_file = open('modules/pick_up_loot/sqm_size.json', 'r')
        json_object = json.load(json_file)
        json_file.close()
        self.sqm_size = json_object['sqm_size']

        self.set_sqm_list()

    def keyboard_handling(self, key=None):
        key = str(key)
        key = key.strip('\'')

        if not self.pick_up_loot_active:
            if key == self.hotkey:
                self.pick_up_loot_active = True
                self.pick_up_loot()
                return False
            else:
                return False

    def pick_up_loot(self):
        random.shuffle(self.sqm_list)

        for i in self.sqm_list:
            a = random.randint(-int(self.size_x) // 3, int(self.size_x) // 3)
            b = random.randint(-int(self.size_y) // 3, int(self.size_y) // 3)
            self.mouse.position = (i[0] + a, i[1] + b)
            self.keyboard.press(Key.shift)
            self.mouse.press(Button.right)
            self.mouse.release(Button.right)
            self.keyboard.release(Key.shift)
            time.sleep(0.05)

        self.pick_up_loot_active = False

    def run(self):
        self.main_loop = True
        self.load()

        while self.main_loop:
            self.app_active = True

            while self.app_active:
                if not self.pick_up_loot_active:
                    with keyboard.Listener(on_press=self.keyboard_handling) as listener:
                        listener.join()

            time.sleep(0.5)

 

1 odpowiedź

+2 głosów
odpowiedź 8 kwietnia 2022 przez VBService Ekspert (253,400 p.)
wybrane 9 kwietnia 2022 przez Hysek
 
Najlepsza

Ustaw (dodaj) wyjątek na folder z projektem w programie antywirusowym dla przykładu:

Jak ustawić wyjątki w programie Windows Defender

1
komentarz 9 kwietnia 2022 przez Oscar Nałogowiec (29,320 p.)

Trochę śmieszna sytuacja - artykuł zobrazowany screenami z hiszpańsko-języcznej wersji Windowsa. Mi to akurat nie przeszkadza - po pierwsze nie używam Windowsa, a po drugie jakoś tam znam hiszpański. smiley

Ale do sedna - z punktu widzenia bezpieczeństwa, każdy program, który podłącza się bezpośrednio do klawiatury, bez pośrednictwa okienka, jest właśnie keyloggrem.

Czy w przypadku języka python wystarczy wrzucić do wyjątków katalog/plik w pythonie, czy trzeba odblokować cały interpreter? Może warto będzie kompilować do exe?

 

komentarz 9 kwietnia 2022 przez VBService Ekspert (253,400 p.)

@Oscar,  yes

artykuł zobrazowany screenami z hiszpańsko-języcznej wersji Windowsa. 

rzeczywiście, laughlaugh jakoś Mi to "umknęło".

Podobne pytania

0 głosów
0 odpowiedzi 188 wizyt
pytanie zadane 18 sierpnia 2022 w Python przez xkamiz Użytkownik (500 p.)
+1 głos
0 odpowiedzi 277 wizyt
pytanie zadane 5 lipca 2021 w Python przez KumberTwo Dyskutant (8,270 p.)
0 głosów
1 odpowiedź 592 wizyt
pytanie zadane 7 marca 2019 w Python przez nolokon Nowicjusz (120 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...