Cóż, melduję się wyjątkowo, po dłuższej nieobecności. Tak się złożyło, że miałem chwilę wolnego czasu na pobawienie się tym cudem techniki /w sumie zostałem tutaj ściągnięty, ale mniejsza o to/.
othello napisał(a)
Zdaje sie ze ekipa od asm/disasm jest na wakacjach...
Zawsze do usług, przyznam się, że rzuciłem tylko okiem na konsolowy skaner, wystarczyło. Mimo iż nie pracuję aktualnie w branży AV powinienem chyba się wypowiedzieć :-)
Ok, od czego by tutaj zacząć? Może od tego, że autorem wątku jest Pan Piotr Olszewski? Przejdźmy może do omówienia 'oferty'.
Nowy unikalny anty wirus...
Przepraszam bardzo, już takiego antywirusa kiedyś miałem... na C64. Wymienionych zagrożeń po prostu nie może wykrywać w sensowny sposób, a części w ogóle... ale o konkretach potem.
- bezpłatne użytkowanie i aktualizacje oprogramowania dla wszystkich
Firmy i tak AV kupują, użytkownicy prywatni mają dostępną za free chociażby Avirę, jeden z lepszych wedle Virus Bulletin sprzętów ostatnio.
- możliwość bezproblemowej współpraca z innymi anty wirusami
Taaaak, tylko dlatego, że programem antywirusowym nazwać go nie sposób.
- konkurencyjna bazy sygnatur wirusów
Ani konkurencyjna ani sygnatur... gdzie tutaj może być konkurencja, co? Tak się składa, że w branży AV często się dostaje viri po znajomości, od ludzi pracujących u 'konkurencji'.
- brutalne zamykanie procesu wirusa w pamięci
Tak, bardzo brutalne - zwykłe OpenProcess + TerminateProcess, to nawet SK obejść potrafi robiąc hooka w ring3.
- brutalne wyładowanie zainfekowanej biblioteki bądź zainfekowanego sterownika (tylko NT)
Masz na myśli to GetModuleHandle + FreeLibrary? Tak się składa, że ta procka Ci stos rozwala i gdyby nie obsługa wyjątków to program poleciałby w kosmos, a tak - udajesz, że nic się nie stało. Przypomnę tylko, że GetModuleHandle działa tylko na lokalny, Twój, proces... ale pomysł zaiste ciekawy.
- szybki moduł skanujący pliki
[rotfl] Szybki? To cudo ma wydajność kilku średnich plików jpg (?!) na sekundę przy procesorze obciążonym na 100%. Dlaczego? Napiszę potem.
- wykrywanie oszukanych plików pułapek
Czegoś takiego nawet nie ma... ok, już jest - wygenerowałem sobie kilka pliczków generujących fałszywe alarmy... pliczków tekstowych.
Małe? Już pisałem jak wygląda sprawa wydajności... odpal Avirę albo NODa i skonfiguruj do identycznej pracy jak Twoje cudo, wydajność będzie wielokrotnie większa.
- wbudowane więzienie, pozwala na przechowywanie zainfekowanych plików w jednym skompresowanym pliku
Wrzucenie w borlandowską bazę danych wira to faktycznie więzienie....
Nie miałem okazji przetestować na wirusach.
Widać chociażby po bazie 'sygnatur'... i po tym, że mam kolekcję najpowszechniejszego malware'u ostatnich lat - skanowanie zajęło z pół godziny, nie znaleziono absolutnie nic.
johny_bravo napisał(a)
Prawdopodobnie nic sie nie stanie, bo tez nic ten program chyba nie robi
Zapewniam Cię, że robi, skanuje... prawie tak jak ClamAV.
dżejo napisał(a)
Jeśli ktoś włoży sporo pracy i złych intencji w napisanie
wirusa to rozpracowanie go przez fachowca zajmie trochę czasu
co przekłada się na konkretny szmal .
Czy to jest więc podstawą do wspólpracy między firmami
czy wręcz przeciwnie - konkurencji w pisaniu oprogramowania.
Oficjalnie to się raczej nie współpracuje... ale i tak chłopaki podsyłają sobie próbki po znajomości.
Program zawsze będzie darmowy i rozwijany, choć wiążą się z tego tytułu nieprzyjemności ze strony konkurencji - nie mam zamiaru się poddawać.
Chyba sobie żartujesz? Nieprzyjemności ze strony konkurencji? W branży AV? Mam wrażenie, że o branży AV wiesz tyle ile o programowaniu... Nikt się nie przejmuje takimi płotkami, co najwyżej jest trochę śmiechu kiedy ogląda się takie wypociny. Chcesz mi powiedzieć, że HispaSec, Symantec, ESET czy powiedzmy F-Secure coś w ogóle do Ciebie miały? Wybacz, ale realia tej branży są całkowicie inne, nie rób z siebie ofiary, męczennika...
Program jest napisany w legalnym Borland Delphi 2007 Professional ( ttp://olszewskisoftware.com/faktura.jpg ), którego zakupiłem bezpośrednio od firmy CodeGear.
Skłoniły mnie do tego groźby konkurencji. Wziąłem kredyt gotówkowy i zakupiłem oryginalne, legalne oprogramowanie w celu rozwoju tego antywirusa, a w przyszłości innych oprogramowań mojej firmy.
Do produkowania i rozpowszechniania darmowego oprogramowania firmy mieć nie musisz, zaś skoro AV jest darmowy to mogłeś go legalnie rozwijać na Delphi w wersji Personal...
...ach, nie mogłeś, Personal nie ma komponentów do obsługi baz danych, a jak wiadomo bez InterBase nie stworzy się antywirusa... co mam na myśli? To potem...
Na początku serwer zbiera informacje na temat tych plików przeprowadzając rutynową analizę, następnie odpowiednie oprogramowanie stworzone do tego celu ułatwia i pozwala na szybką analizę plików, dodatkowo istnieje możliwość użycia skanerów internetowych, odpalanie pliku na wirtualnej maszynie z zainstalowanym Windowsem XP oraz narzędziami monitorującymi system w celu analizy zachowania się pliku, a na końcu kilka metod generowania sygnatury dla pliku, także według własnego spostrzeżenia w pliku. W sumie analiza tych plików trwa do 2h.
Hm, bardzo podobną wypowiedź czytałem kiedyś na forum ArcaBitu.. gdybym nie wiedział, że to pisała inna osoba - powiedziałbym, że to to samo. Różne metody generowania sygnatur? Kłamstwo! Tego nawet sygnaturą nazwać nie można, do tego rodzaj danych użytych jako sygnatura jest jednoznaczny, nie ma wielu metod, jest jeden ściśle określony /i spaprany/ algorytm.
Głównie programuje w Delphi (Object Pascal) i wielu innych językach [...]
To jakiś argument? Pomijając, że takich błędów w kodzie /vide wspomniany, niezauważony, stack overflow/ i złego stylu jeszcze nie widziałem w oprogramowaniu AV. Nadużywanie zmiennych globalnych, ewidentne tworzenie kodu metodą kopiuj-wklej...
Nie wstydzę się tego, że mieszkam na wsi niedaleko Częstochowy.
Nie wstydzę się tego, że zawsze mówię prawdę, także w wywiadzie dla gazet [...]
Gdybyś nie był kłamcą to moglibyśmy iść na piwo, jak RE z RE...
Tutaj muszę przerwać na chwilę pisanie aby opanować nerwy...
Żadna mi nowość, w ciągu 3 lat rozwijania tego anty wirusa spotkałem się z lepszymi działaniami konkurencji oraz osób z nimi powiązanych nawet ciekawymi typu: [...]
Coś o konkurencji już pisałem... konkurencja w branży AV to odkupienie sobie pracownika konkurencji, ew. informacji o badaniach... Ty nie masz nic, co mogłoby zainteresować kogoś z firmy AV.
- wykrywanie u niektórej konkurencji mojego oprogramowania jako niebezpieczne
Aktualne skany z VirusTotal, poświęciłem się i wrzucałem pojdynczo abyś nie stwierdził, że to wina spakowania: HakerzyNET_AV.exe, HakerzyNET_MAV.exe, APIHook.dll, APIScan.dll, HakerzyNET_Menu.exe. Jakoś nie widzę tej wykrywalności u konkurencji, eSafe ma prawo się czepiać za metody, które stosujesz, robisz bardzo dużo hałasu.
- śmieszne maile typu: "jak nie skonczysz z nim to spalimy twoja chate".
Tak, śmieszne... nie wierzą abyś w ogóle taki mail otrzymał.
- groźby: "Jeśli Pan nie wycofa tego oprogramowania, zrobimy wszystko co w naszej mocy, aby zniszczyć Panu opinie."
o to pewnie mnie nasłali? Cóż, mam kumpla w HispaSecu, pewnie od sfałszował wyniki... a może tak zejdziemy na ziemię i szczerze pogadamy o jakości i funkcjonalności reklamowanego oprogramowania?
- a nawet prośby sugerujące zazdrość: "Prosze o udostępnienie kodu źródłowego programu, bo chciałem sobie napisać lepszy"
Wiesz, to tylko głupi żart, nawet najbardziej początkujący pracownik laboratorium AV zapewne lepiej sobie poradzi z Twoim programem za pomocą debuggera i disassemblera niż edytora i dostępu do źródeł.
Podkreślam, że "koncern" antywirusowy jest bardzo duży, nowo powstały program antywirusowy w dodatku darmowy stawia pewne zagrożenie w kapitale "konkurencji" z której kilku użytkowników rezygnuje na czas testu nowego darmowego oprogramowania, a nawet przejścia na niego. Zachęcam do stworzenia własnego darmowego antywirusa ludziom o mocnych nerwach, którzy poświęcą się niemu.
Tacy jak Ty tylko swoją obecnością nabijają kieszeń firmom AV - użytkownik przejedzie się na darmowym AV to kupi licencję na coś wartościowego. Ja zaś nie zachęcam, do tworzenia tak specyficznego i zaawansowanego oprogramowania jak antywirus potrzeba wieloletniego doświadczenia i rozbudowanej wiedzy - podstawową cechą antywirusa jest skuteczność, tej nie uzyska się dzięki doświadczeniu w układaniu komponentów.
Do autora wątku:
Aż miło, że są ludzie, którzy potrafią człowieka podnieść na duchu pozytywnie komentując jego wkład w oprogramowanie, nie wspominając o tworzeniu stron internetowych na temat jego oprogramowania.
Piszesz do siebie? Ok, niektórym rozmowa z samym sobą pomaga przy problemach emocjonalnych, nie wnikam...
Bardziej przejmnę się wykrytym błędem, niedopracowaniem, propozycją, nowym zagrożeniem.
Proponuję przejrzeć źródła ClamAVa i zacząć od początku, ten antywir przynajmniej ma sensowny system sygnatur opartych na wyrażeniach regularnych, obsługuje packery plików wykonywalnych, jest dosyć wydajny i skuteczny... czyli zawiera wszystkie propozycje zmian.
Przejdźmy do propagandy ze strony:
Nasza kosiarka tnie wszystkie wirusy jakie padną jej na drodze, np. nie ważne czy wirus siedzi w pamięci i jest używany - nasz anty wirus jest tak brutalny, że sam go wykurzy i zniszczy.
Powiem tak - plik jest otwarty. Tyle. Co to ma znaczyć? Jeżeli plik nie jest uruchomionym procesem lub nie uda się tego procesu ubić prosząc go o to grzecznie za pomocą WINAPI to 'AV' po cichutku idzie dalej, w międzyczasie równie cicho rzucając wyjątkiem...
Jeśli Twój dodatkowy anty wirus nie jest w stanie usunąć jakiegoś wirusa z Twojego dysku, a nasz anty wirus go nie wykrywa nie lękaj się, proszę wyślij go nam, a my przeanalizujemy go w zaledwie kilkanaście minut i już po upływie godziny udostępnimy nową bazę z nadesłanym przez Ciebie szkodnikiem i bez najmniejszego problemu nasz anty wirus usunie Ci go oraz jego kopie.
Mam rozumieć, że jak normalny program antywirusowy z poziomu jądra systemu, z pominięciem całego API nie potrafi modułu lub\i pliku usunąć to Twoje 'cudo', które posiada wyłącznie prawa zalogowanego użytkownika tak po prostu przy pomocy systemowego DeleteFile wywali? Chyba sobie kpisz, starczy otwarty uchwyt do pliku nie dający praw do usunięcia innym, aby Twój AV był bezradny. Zresztą, starczy, że wir zabierze na partycji NTFS prawa do usunięcia siebie... już leżysz. Nawet jeden z pamiętnych badziewnych trojanów, którymi 4p było zarzucane był na to odporny. Tak, trojan napisany przez dziecko.
Nasze technologie informatyczne zostały wcześniej już przetestowane.
w połączeniu z:
Nie miałem okazji przetestować na wirusach.
po prostu zabija...
OK, przejdźmy znów do dalszych postów.
othello napisał(a)
Wówczas będziemy wiedzieli ze nie jest to fake (bo na razie wyglada bardziej jak fake).
Zapewniam, że nie fake...
wikipediahehe napisał(a)
Rozgryzlem dziada haha :D z tą bazą av to prawda !!!! ma baze kilkutysieczna ten av2008 ....
uwage trzymac sie krzeseł.... BAZE NAZW WIRUSÓW .... ponizej pseudokod zajarzycie Od razu :D :
Tym, kolego, zapracowałeś sobie na pięknego bana, za trollowanie. Wątpię abyś w ogóle wiedział czym otworzyć tą bazę.
mnbvcX napisał(a)
PS1. To KłamsTVo. Dwa antywirusy (jakiekolwiek) zawsze będą się gryźć, gdyż każdy antywirus jest z bazą wirusów (odkrywcze :D) zawierającą próbki wirusów. I właśnie jeden wirus wykrywa "wirusy" w pliku bazy...
Nie zgodzę się, sygnatury to nie są zwykłe fragmenty kodu, nie są też w oryginalnej postaci - tak jak wspomniałem, np. ClamAV używa wyrażeń regularnych. Proponuję mając zainstalowanego antywira puścić skaner on-line... i nie wypowiadać się na temat, o których się pojęcia nie ma.
Dobra, tyle postów do komentowania, przjdźmy do modułu skanera konsolowego.
Od czego by tu zacząć? Może od tego, że prawie cały skaner to jedna, wielokilobajtowa, funkcja main? Ładną oprawę graficzna zapewniłeś, szkoda tylko, że zapomniałeś o wyczyszczeniu ekraniu i paru innych drobiazgach przed odstawianiem tej szopki, screen ze skanu paczki wirusów udostępnionej przez Szanownego Pana, przykre...
CODE:00422BE8 lea eax, [ebp+BaseFullPath]
CODE:00422BEE mov edx, offset aBase_dat ; "base.dat"
CODE:00422BF3 call System::__linkproc__ LStrCat(void)
CODE:00422BF8 mov edx, [ebp+BaseFullPath]
CODE:00422BFE mov eax, esi ; MemoryStream
CODE:00422C00 call Ibsql::TIBXSQLVAR::LoadFromFile(System::AnsiString)
Przejdźmy dalej, czym jest wspomniana baza 'sygnatur'? To baza danych InterBase, co jest o tyle śmieszne, że jej odczytanie daje jeden blok danych, 87743-liniowy tekst. Początek zawartości:
000128f16b5918cf1b3081539ecbae9733368
00013e18bab72f21e56b486c8962e055332228
0001b9e684e799eeb9a663702c161d91743851
0003d9b55d7bde506827afe40252da5f944
000463b36bd1b43a586ef1b76c1f7b33949
0004887151668ca9e246abb0943fa9c9267264
0004c0947ba4b35a59182223763d61e4180224
000770803df2204e3ffd4d7ec0fb1ff371222
0007b23030d696c36e01cc244035601b359
0007bb6456c7c985e6070cb37ff03a64760
czyli wartości w formie hexstringa, o długości co najmniej 128 bitów. Tak, są to właśnie posortowane 'sygnatury'... które trafiają następnie do obiektu StringList. Dlaczego napisałem 'sygnatury'? Problem jest taki, że ten genialny program po prostu 'hashuje' /swoją drogą autor pojęcia entropii chyba nie zna.../ całe pliki uzyskując w efekcie dokładnie 128 bitowe wartości. Przyznam się szczerze, że wolę się nie zastanawiać nad pochodzeniem dodatkowych wartości... fragment procki konwertującej 'hash' na string:
CODE:0041D8D6 mov eax, edi
CODE:0041D8D8 call System::__linkproc__ LStrClr(void *)
CODE:0041D8DD mov bl, 16
CODE:0041D8DF lea esi, [ebp+tmpbuff]
CODE:0041D8E2 @@toHexStrLoop: ; CODE XREF: ConvertToHexStr+7Ej
CODE:0041D8E2 push dword ptr [edi]
CODE:0041D8E4 lea eax, [ebp+lNible]
CODE:0041D8E7 xor edx, edx
CODE:0041D8E9 mov dl, [esi]
CODE:0041D8EB shr edx, 4
CODE:0041D8EE and edx, 0Fh
CODE:0041D8F1 mov dl, byte ptr ds:a0123456789abcde[edx] ; "0123456789abcdef"
CODE:0041D8F7 call unknown_libname_71
CODE:0041D8FC push [ebp+lNible]
CODE:0041D8FF lea eax, [ebp+hNible]
CODE:0041D902 mov dl, [esi]
CODE:0041D904 and dl, 0Fh
CODE:0041D907 and edx, 0FFh
CODE:0041D90D mov dl, byte ptr ds:a0123456789abcde[edx] ; "0123456789abcdef"
CODE:0041D913 call unknown_libname_71
CODE:0041D918 push [ebp+hNible]
CODE:0041D91B mov eax, edi
CODE:0041D91D mov edx, 3
CODE:0041D922 call System::__linkproc__ LStrCatN(void)
CODE:0041D927 inc esi
CODE:0041D928 dec bl
CODE:0041D92A jnz short @@toHexStrLoop
Jasno wynika z niego rozmiar wyjściowego stringa. Czy wspomniałem już, że StringListy 'sygnatur' i plików do przeskanowania są zmiennymi globalnymi? Algorytm liczenia 'sumy kontrolnej' litościwie pominę. Sekret 'wydajności' tego stworzenia:
CODE:00422FCE @@HashCheckLoop:
CODE:00422FCE push offset g_HashFromBase
CODE:00422FD3 lea ecx, [ebp+cCurrentHash]
CODE:00422FD9 mov edx, ds:g_Counter
CODE:00422FDF mov eax, ds:g_HashList
CODE:00422FE4 mov esi, [eax]
CODE:00422FE6 call dword ptr [esi+0Ch] ; StringList::Get(int)
CODE:00422FE9 mov eax, [ebp+cCurrentHash]
CODE:00422FEF push eax
CODE:00422FF0 mov eax, ds:g_FileHash
CODE:00422FF5 call String__Size
CODE:00422FFA mov ecx, eax
CODE:00422FFC mov edx, 1
CODE:00423001 pop eax
CODE:00423002 call System::__linkproc__ LStrCopy(void)
CODE:00423007 mov eax, ds:g_HashFromBase
CODE:0042300C mov edx, ds:g_FileHash
CODE:00423012 call System::__linkproc__ LStrCmp(void)
CODE:00423017 jnz @@NextHash
Jak widzimy 'sygnatura' z bazy jest kopiowana i przycinana do długości 'sygnatury' pliku. Zabieg o tyle bezsensowny, że rozmiar jest stały, być może to tylko głupota kompilatora... Dlaczego wspomniałem o wydajności? Ano, StringList do najszybszych nie należy, do tego jest przeglądany sekwencyjnie, od pierwszego do ostatniego, stringi są porównywane bajt po bajcie... Na Boga, człowieku, nie mogłeś przyciąć wcześniej skoro rozmiar jest stały?
Nie możesz tego przeglądać chociaż wyszukiwaniem binarnym skoro zadałeś sobie trud tworzenia posortowanej listy 'sygnatur'? Piszesz, że masz 7 czy lat doświadczenia w programowaniu, 6 lat w łamaniu zabezpieczeń i znasz assemblera... pojęcie złożoności obliczeniowej naprawdę jest Ci obce? Wygrywałeś konkursy z MDK? To może wypadałoby wspomnieć, że ich poziom jest wyśmiewany? Nie lepiej było poświęcić ten czas na Olimpiadę Informatyczną? Wyniósłbyś z niej chociaż to, że przeglądanie listy prawie 90k długich stringów najbardziej naiwnym możliwym algorytmem to głupota.
Wspomniałem coś o buffer overflow i durnym sposobie 'siłowego' usunięcia modułu?
CODE:00421C28 ; void __fastcall ROTFL_ForceUnload(char *pszModuleName)
CODE:00421C28 ROTFL_ForceUnload proc near
CODE:00421C28
CODE:00421C28 strNameCopy= dword ptr -10h
CODE:00421C28 ModuleName= byte ptr -0Bh
CODE:00421C28
CODE:00421C28 push ebp
CODE:00421C29 mov ebp, esp
CODE:00421C2B add esp, -10h
CODE:00421C2E push ebx
CODE:00421C2F xor edx, edx
CODE:00421C31 mov [ebp+strNameCopy], edx
CODE:00421C34 mov ebx, eax ; ebx = pszModuleName
CODE:00421C36 xor eax, eax
CODE:00421C38 push ebp
CODE:00421C39 push offset @@_seh_handler
CODE:00421C3E push dword ptr fs:[eax]
CODE:00421C41 mov fs:[eax], esp
CODE:00421C44 lea eax, [ebp+strNameCopy]
CODE:00421C47 mov edx, ebx
CODE:00421C49 call unknown_libname_72 ; skopiowanie stringa
CODE:00421C4E mov edx, [ebp+strNameCopy]
CODE:00421C51 lea eax, [ebp+szModuleName]
CODE:00421C54 call @WStrPCopy ; niespodzianka
...
O co chodzi? @WStrPCopy to praktycznie odpowiednik strcpy z C, równie niebezpieczny w rękach niewprawnych osobników... Zmienne lokalne zajmują 16 bajtów, z czego obiekt klasy String zajmuje bodaj 8, pozostałe 8 zaś zajmuje zwykła tablica charów znana z C. Nasz assemblerowiec się nie pochwalił umiejętnością posługiwania się tablicami znaków - do malutkiej tabliczki kopiuje dane ze znacznie dłuższego Stringa zawierającego ścieżkę, kończy się to nadpisaniem ramki stosu i pięknym wyglebieniem programu podczas powrotu z funkcji przy odpowiednim nadmiarze. Jeżeli ścieżka ma tylko kilka znaków to ustawiona na stosie struktura SEHa przetrwa i pozwoli programowi obsłużyć wyjątek, jeżeli jest te kilkanaście znaków - papa, adres handlera zostaje zniszczony, próba wykonania handlera błędów powoduje kolejny błąd... i kolejny...
Eksperyment do przeprowadzenia w domu: bierzemy jeden z wykrywanych wirów, najlepiej dll, wrzucamy gdzieś głębiej i otwieramy czymś blokującym usunięcie lub też na woluminie NTFS odbieramy prawa do usunięcia pliku, dajemy 'Skanuj'... papa, 'anty wirusie' [rotfl]
Nie pisałbym może takiego elaboratu gdyby tyczyło się to tylko tych błędów i niedoróbek gdybym znalazł tylko te po dokładnej analizie. Nie, to efekt tylko wstępnych oględzin jednego z modułów. Jako, że program jest robiony metodą Kopiego-Pejsta to mając więcej egzemplarzy skanera każdy jest podatny... Ale to jeszcze nic, najlepszy dowód na to, jakim kłamcą i oszustem jest autor:
CODE:0042378A @@FakeMemScan:
CODE:0042378A mov dx, 6 ; y
CODE:0042378E mov ax, 1 ; x
CODE:00423792 call moveCursor
CODE:00423797 push 1 ; dwMilliseconds
CODE:00423799 call Sleep
CODE:0042379E lea edx, [ebp+newStr]
CODE:004237A4 mov eax, offset aSkanowaniePami ; "* Skanowanie pamięci procesów: "
CODE:004237A9 call _copystr
CODE:004237AE mov edx, [ebp+newStr]
CODE:004237B4 mov eax, ds:stdout
CODE:004237B9 call _WriteString
CODE:004237BE mov edx, ds:uFileNo
CODE:004237C4 call _WriteLong
CODE:004237C9 mov edx, offset sProcent ; " %"
CODE:004237CE call _WriteString
CODE:004237D3 call System::__linkproc__ Flush(System::TTextRec &)
CODE:004237D8 call System::__linkproc__ _IOTest(void)
CODE:004237DD inc ds:uFileNo
CODE:004237E3 cmp ds:uFileNo, 101
CODE:004237EA jnz short @@FakeMemScan
CODE:004237EC mov eax, ds:stdout
CODE:004237F1 mov edx, offset aOk ; " OK"
CODE:004237F6 call _WriteString
Dawny licznik plików robi za licznik pętli, osobliwej pętli. Co milisekundę raczy użytkownika informacją o kolejnym procencie przeskanowania pamięci uruchomionych procesów... i nic poza tym. W ogóle takiego mechanizmu zaimplementowanego nie ma i patrząc na powyższe cuda wątpię aby autor był go w stanie napisać. Tak, licznik plików bo praktycznie cały skaner + wszystkie pozostałe opcje odpalane z linii poleceń są zaimplementowane jako jedna tylko funkcja. To chyba ochrona przed konkurencją.
Skoro masz dłuższy staż jako RE - proszę, http://www.eset.pl/quiz.html zrób i zatrudnij się w Krakowie, jako młodszy stażem mogę zapewnić, że to zabawa na co najwyżej jeden wieczór :-)
Wkurzają mnie niemiłosiernie ludzi nazywający siebie hakerami, specjalistami, chwalący się wszędzie ilością lat w branży, jeżeli coś faktycznie umie to jest to po prostu widać, inaczej przynosi wstyd tak sobie jak i tym, pod których się podszywa. Widać teraz rynek zdobywa się wciskaniem softu na chama, robiąc w konia klienta na każdym kroku.
Tyle po wstępnych oględzinach, chyba na dziś wystarczy.
p.s. przepraszam za chaotyczność postu ale powstawal on pod wpływem silnych emocji i nieustannych uniesien spowodowanych przez wzmiankowany soft.