Delphi i blokowanie na chwilę programu przez antywirus

Delphi i blokowanie na chwilę programu przez antywirus
TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

Witam,

Jak to jest z programem w Delphi i Antywirusem. Napisałem program i instaluję go za pomocą Smart Install Maker. Wszystko fajnie hula, ale przy pierwszym uruchomieniu mojego programu włącza się antywirus Avast z komunikatem „wykryto podejrzany plik” i blokuje uruchomienie mojego programu na kilkadziesiąt sekund trwa skanowanie po czym wyskakuje komunikat, że „plik wydaje się być bezpieczny” i uruchamia program. Potem już program uruchamia się normalnie. Sprawdzałem też inny mój program (prosty) i to samo. Da się to jakoś ominąć, żeby program za pierwszym razem uruchamiał się normalnie bez blokady i skanowania przez Avast ??
Na przykład jak z internetu ściągam jakiś program np. z www.dobreprogramy.pl czy inny portal i instaluję to Avast go nie blokuje i nie skanuje. Jak to jest ??, bo tego nie rozumiem.

Dzięki
Pozdrawiam

tomamiko

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
1

Mi się tak działo jak użyłem w kodzie aplikacji czegoś co się nie do końća antywirusowi podobało (globalny hook na klawiaturę) napisz zwykły hello world i zobacz czy jest ten sam efekt jak nie to znaczy, że w kodzie aplikacji coś użyłeś takiego co avast uwarza, za potencjalne ryzyko warte sprawdzenia.

SK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 101
2

@tomamiko Każdy antywirus będzie chciał sprawdzić "nowy" plik. Nowy, czyli w 99,99% taki, którego "hasha" nie zna. Uruchamiając znane programy, antywirusy już ich nie skanują, ponieważ mają zawarte informacje, że plik o danych hashu jest bezpieczny. Dodatkowo jest wiele innych czynników, które powodują, że antywirusy bardziej przyglądają się plikowi, np. plik EXE nie jest podpisany cyfrowo.

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
0

@woolfik to może być, ale nie musi od razu podejrzane zachowanie w stylu jakiś hook. Takich symptomów jest masa i antywirus nie będzie w stanie sprawdzić wszystkiego od razu. Możliwości jest tyle, że potrzeba by naprawdę mocnego CPU aby w ułamku sekundy wybrać plik ważący kilka MB sprawdzić go i stwierdzić, że potrzeba dogłębniejszego skanowania.

Sam nie raz się z tym spotkałem w swoim produkcie. A co podejrzanego może robić zwykły program do fakturowania/obsługi magazynu/finansowy? Podejrzewam, że chodzi tu o coś innego.

Dzisiejsze antywirusy mają różne, czasami dziwne, czasami wymyślne mechanizmy wykrywania potencjalnie niepożądanych aplikacji. Najczęściej spotykam się z tym po aktualizacji plików do nowej wersji. Skanowanie raz przez 30 sekund i do kolejnej podmiany plików jest ok. Po prostu antywirus nie zna tego pliku więc sprawdza go.

Inną sytuacją jest przypadek, że antywirus buduje sobie reputację danego pliku. Na takową reputację składa się trochę rzeczy. Na przykład mała popularność naszego pliku. Antywirus może przekazywać statystyki na temat pliku. Jeśli w jego bazie (umieszczonej na serwerach producenta) ma mało wystąpień, albo nawet pojedyncze to o wiele bardziej ryzykowne jak dany plik występuje na 1 000 000 komputerów.

Jeszcze sprawa czy plik jest chociażby podpisany i przez kogo. Programy bez podpisu też mogą być większego ryzyka jeśli chodzi o niechciane oprogramowanie.

Generalnie dla małych twórców oprogramowania czasami będzie ciężko pozbyć się takich sytuacji. Szczególnie jak się tworzy mało popularne i mało znane oprogramowanie występujące na małej ilości stacji roboczych.

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
3

Z Avastem to ten problem jest starszy od węgla. Jak radzą choćby tutaj https://stackoverflow.com/questions/38690200/when-i-compile-my-c-code-avast-thinks-its-a-virus najlepiej dodać folder w którym jest budowany plik wykonywalny do wykluczeń.

pawelo31
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

Moja rada. Nie używać Avasta :)

DA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 87
0

Analogicznie dzieje się z Avastem w przypadku (bliźniaczego) C++ Builder w każdej postaci, nawet wtedy kiedy odpalany jest program konsolowy w C/C++.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Defender w systemie Windows też skanuje każdy nowo skompilowany plik, przed jego uruchomieniem. I zapewne robi to każde inne szanujące się oprogramowanie antywirusowe, bo tak być powinno, aby użytkownik mógł czuć się bezpieczny.

Tyle że Defender nie pokazywał żadnych okien, a po prostu wtrącał się w tle, skanował plik i po kilku sekundach pozwalał go uruchomić. Ale mnie to irytowało, więc dodałem odpowiednie ścieżki do wykluczeń i z głowy.

Pepe
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 505
0

Ja mam bardzo negatywną opinię na temat tzw. programów antywirusowych (swoją opinię przedstawiam na bazie doświadczeń z Microsoft Defender).
Jako programista-amator Delphi widzę na co dzień, że Microsoft (inni podobnie) robi wszystko, aby zniechęcić czy wręcz uniemożliwić małym podmiotom rozwój (poprzez system reputacji, poprzez wymóg podpisu cyfrowego, problemy zgłaszania "false-positive", etc). Zwłaszcza tych, co używają reliktu, zwanego Delphi. O co chodzi?

Pisząc swój program mamy nadzieję, że będzie on czemuś i przede wszystkim komuś służył. Chcemy podzielić się nim ze światem. Często jednak bywa tak, że już NA WŁASNYM komputerze, ten najmądrzejszy i najlepszy program antywirusowy świata blokuje (!) właśnie skompilowany program twierdząc, że to zagrożenie!!! (w najlepszym przypadku blokuje komputer na 5-10 sekund, skanując plik i (w większości przypadków) łaskawie zezwala na dalsze działanie). Na własnym komputerze muszę się użerać z tym pseudo-programem, bo on wie lepiej. To absurd! Pytanie kto jest właścicielem komputera... bo wielki biznes robi wszystko, żebyśmy byli tylko gośćmi... (tak, wykluczenie katalogu pomaga).

Pliki wynikowe Delphi są notorycznie blokowane - najczęstszym wydumanym zagrożeniem jest "Trojan:Script/Wacatac". Mimo, że plik jest na 100% czysty (te same złe doświadczenia mam z NSIS, systemem tworzenia instalatorów). Dlaczego tak się dzieje? Dlaczego, mimo zgłaszania (false-positive) problem wciąż powraca? Nowe wersje sygnatur nic nie zmieniają... wystarczy przekompilować program, zmienić 2 linie czy słowo i bum! ZAGROŻENIE. Żenada!

System reputacji potrafi zablokować pobieranie takiego pliku (w przeglądarce) przez użytkownika - tylko na podstawie tego, że mało osób go pobrało i używało! Choćbyś napisał cudowny program, co leczy raka - nie masz siły przebicia, ludzie się nawet o tym nie dowiedzą - bo już na etapie pobierania, plik jest blokowany jako podejrzany (oczywiście, kilka kliknięć i uda się pobrać - ale mało kto wie jak i mało komu się chce to zrobić - no bo skoro Google Chrome (dla przykładu) mówi "Uważaj - to wirus" - to większość sobie odpuści, nobo przecież ONI wiedzą lepiej).

Z tego co się orientuje, powodem tego może być fakt, że w przeszłości sporo malware/trojanów pisanych było w Delphi (tak samo wykorzystywano NSIS). Stąd, kod Delphi, który używamy jest automatycznie podejrzany i natychmiast blokowany. To duży problem. Z tego powodu są takie absurdy jak blokowanie programu, który nic nie robi (nowa forma, kompiluj - bum! WIRUS - nie trzeba nawet używać funkcji potencjalnie mogących wyrządzić szkody). Albo w przypadku NSIS wystarczy skompilować oficjalny plik przykładowego użycia NSIS i mamy ten sam problem. Tak nie może być - a jednak jest.

Ciekawostka. Ich cudowne metody blokowania programu opierają się (też) na nazwie! Tak, wystarczy w programie użyć "zakazanej, będącej na indeksie" nazwy i koniec. Dla testu, wystarczy skompilować program (sama forma, brak jakiegokolwiek kodu) i uruchomić. Program odpali się - ale zmiana nazwy na zakazaną (tzn. programu uznanego za zagrożenie) z miejsca blokuje wykonanie programu! No jak na firmę wartą miliardy, to sposób jest naprawdę wyśmienity :P

Na swoim komputerze, mam cały katalog wykluczony, bo w przeciwnym razie nie da się pracować. Ale czy o to chodzi? To po co mi program AV?

GS
  • Rejestracja: dni
  • Ostatnio: dni
0

Używam oprogramowania firmy ESET, które nie stwarza takich problemów. I polecam je naszym klientom.
ESET skanuje pliki w locie, w sposób niewidoczny dla użytkownika i bez zauważalnego spowolnienia uruchamiania aplikacji.
Minus jest taki że bezpłatna jest tylko 30 dniowa wersja próbna

Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2196
0

jak już robimy offtop-a to też polecam ESET

jak antywirus utrudnia życie programisty to trzeba dodać odpowiednie wykluczenia i można pracować dalej

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.