• 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

Aruba Cloud - Virtual Private Server VPS
+1 głos
599 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 (256,600 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,340 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 (256,600 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 223 wizyt
pytanie zadane 18 sierpnia 2022 w Python przez xkamiz Użytkownik (500 p.)
+1 głos
0 odpowiedzi 413 wizyt
0 głosów
1 odpowiedź 700 wizyt
pytanie zadane 7 marca 2019 w Python przez nolokon Nowicjusz (120 p.)

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,663 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...