• 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

Hosting forpsi easy 1 pln
+1 głos
252 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 (246,010 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,130 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 (246,010 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 139 wizyt
pytanie zadane 18 sierpnia 2022 w Python przez xkamiz Użytkownik (500 p.)
+1 głos
0 odpowiedzi 241 wizyt
pytanie zadane 5 lipca 2021 w Python przez KumberTwo Dyskutant (8,270 p.)
0 głosów
1 odpowiedź 509 wizyt
pytanie zadane 7 marca 2019 w Python przez nolokon Nowicjusz (120 p.)

92,107 zapytań

140,763 odpowiedzi

317,745 komentarzy

61,427 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 785p. - Łukasz Eckert
  2. 777p. - Dawid128
  3. 738p. - Eryk Andrzejewski
  4. 733p. - Michal Drewniak
  5. 730p. - Mikbac
  6. 712p. - rucin93
  7. 710p. - sefirek
  8. 674p. - CC PL
  9. 647p. - nidomika
  10. 625p. - Arkadiusz Waluk
  11. 595p. - the Bielsky
  12. 573p. - robwarsz
  13. 571p. - TheLukaszNs
  14. 537p. - 13NOONE37
  15. 533p. - Henry Saele
Szczegóły i pełne wyniki

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...