Amiga .exe - przeczytaj to najpierw.pdf

(66 KB) Pobierz
Temat skopiowany z forum thecompany.pl. Wypowiedź Anthrox’a, czyli jakby
nie patrzeć twórcy/współtwórcy projektu Amiga .exe
Wirusy/Adware w EXE'kach - oficjalne wytłumaczenie
W tym temacie chciałbym Wam uświadomić wraz z przykładami dlaczego exeki traktowane
są jako wirusy.
Zacznijmy od początku.
The Company zawsze zależało, aby robić doskonałe, amigowe exeki.
Pierwsze exeki były "ciężkie", długo się ładowały, zawierały w sobie nielegalne klucze
(chociaż ukryte), o które pluli
się niektórzy amigowcy, larum szedł o kickstarta amigowego (rom)...
Wytłumaczę Wam w wersji rozszerzonej - dlaczego w niektórych exekach v2.5 wykrywa
wirusy i czy jest czego się bać.
Code:
Select all
Dlaczego The Company zrobiło taką fuszerkę?
Jak już wyżej pisałem, pierwsze exeki były "ciężkie".
Z początku to wystarczało, to była tylko próbka - zrobiona na użytek własny i puszczona na
emulacji.net
Jak sprawa nabrała poważności, ekipa zaczęła rosnąć (olesio, esial) przyszedł czas na
dopieszczanie.
Zaczęliśmy więc szukać odpowiednich technik minimalizowania rozmiaru kodu, ponieważ
mimo krojenia końcowy rozmiar "silnika*" exeków nie był profesjonalnie mały.
Analizowaliśmy różne techniki kompresji, które pozwalałyby zachować ich minimalną
wielkość, ale równocześnie pełną funkcjonalność dla użytkownika, jaką powinien dawać
EXE'k.
*mam tutaj na myśli rozmiar exeka bez
żadnej
gry.
Jednocześnie nie chcieliśmy, aby nasza technika produkcji została skopiowana przez
gimbusów.
Dlatego zależało nam, aby kompresja była jednym z zabezpieczeń - utrudniając, a raczej
uniemożliwiając niedoszłym cwaniaczkom używania np. naszego Demonic Window.
Myślę,
że
nasza decyzja jest zrozumiała i jest jasne dlaczego nie chcemy się dzielić naszym
doświadczeniem tworzenia exeków - no chyba,
że
ktoś dołącza do ekipy i zostaje przez nas
zweryfikowany.
Cyt. jednego z wielu komentarzy, który nas w tym utwierdził:
Ktoś ma program, który zrobi mi exeka z grą, bo mam wyjebkę na TC i nie chce mi się
czekać na moją ulubioną grę
Samurai Showdown Classiek?
Koniecznie z instrukcją.
Pomijam już fakt,
że
taki EXE-Maker nie istnieje, ale pomyślmy: nawet gdyby istniał, chyba
lepiej coś wnieść do już istniejącego projektu niż konkurować z TC?
Dlaczego o tym mówię? To szyfrowanie było właśnie chorobą wieku dziecięcego exeków.
Zapomnieliśmy,
że
utrudniając analizowanie kodu exeka tak naprawdę zabezpieczyliśmy się
też przed "legalnymi"
analizatorami jakimi są antywirusy.
To z tego powodu (jak się dowiemy dalej nie tylko z tego), interpretują one kod jak
malware/wirusy. Przezornie
Code:
Select all
Ho-ho-ho, myślisz,
że
ktoś Ci uwierzy? Jak udowodnisz,
że
to co
mówisz jest prawdą?
W sumie nie muszę ale mam dobry humor, a szkoda nie rozwinąć wreszcie tematu, zamiast
mydlić oczy,
że
to fałszywy alarm.
Weźmy aplikację PE jaką jest nasz poczciwy WinUAE (zakładam,
że
mamy już ten plik na
dysku).
Przykład #1
1.
Wrzucamy plik WinUAE.exe na stronę VirusTotal
2. Co to się okazało?
Że
ktoś tydzień temu sprawdzał ten plik i 46 silników antywirusowych
wykryło w nim 0 wirusów. JEST DOBRZE!
3. Spakujmy sobie ten pliczek dosyć znanym konkurentem UPX - programem
MPRESS:
Ściągamy
program
MPRESS
Plik mpress.exe wrzucamy do katalogu z WinUAE
Uruchamiamy CMD.exe (konsolę systemu windows)
Robimy coś takiego i czekamy...:
mpress_start.png
Gotowe!
mpress_koniec.png
4. Łał, nasz exek WinUAE skurczył się do mniejszych rozmiarów! Zamiast 8MB zajmuje
"tylko" 2.10MB - i można go odpalać z dwuklika, nie trzeba go "wypakowywać" - mama
byłaby z Was dumna.
5.
Wrzućmy taki mniejszy exek na Virus Total i zobaczmy, jak zareagowały na niego silniki
antyvirusowe.
Oooo, co się okazuje? Jakbyśmy posiadali antywirusa:
McAfee-GW-Edition
wykryłby on
wirusa:
Heuristic.BehavesLike.Win32.Suspicious-BAY.O
Code:
Select all
Anthrox, zauważ,
że
autor MPRESS'a nie udostępnia source'a programu -
po latach kto wie, czy nie wyjdzie aferka,
że
gościu rzeczywiście nie
dodał jakiegoś exploita na
życzenie
"służb specjalnych".
Przetestujmy zatem jak zareagują antywirusy na kompresor UPX, który posiada otwarty
source - wszystkie zasady jasne, nie powinno być niespodzianek (zakładamy,
że
skompilowany program UPX! nie zawiera w sobie niczego dodatkowego niż jest w
udostępnionym kodzie - aby mieć 100% pewność trzeba by skompilować kod z sourceforge'a
-> ale myślę,
że
nie ma takiej potrzeby.)
GO!
Przykład #2
1.
Ściągamy
program
UPX!
ze sourceforge oraz dla ułatwienia nakładkę GUI ->
FreeUPX,
która jest dziełem naszego rodaka Jacka Pazery.
2. Instalujemy FreeUPX, oraz do katalogu z programem rozpakowujemy UPX! (aby mieć
pewność,
że
mamy najnowszą wersję kompresora - Jacek nie zawsze prędko aktualizuje
program)
3. Przeciągamy WinUAE.exe (oczywiście oryginalnego exeka 8MB, a nie skompresowanego
2MB) na okno FreeUPX, zaznaczamy opcje słabej kompresji i jedziemy! - wciskamy przycisk
COMPRESS
upx_low.png
4. Cóż, UPX nam nie zaimponował - exek wyjściowy ma ponad 3MB!
5.
Wrzucamy na stronę VirusTotal i...
upx_low_virustotal.png
No, no! Zero wirusów!
Code:
Select all
A nie mówiłem? Gdybyś używał UPX'a nie byłoby tych problemów, zawsze
możesz ustawić mocniejszą kompresję.
6. Fakt, sprawdźmy zatem wybierając najmocniejszy profil kompresji:
(sugeruję uzbroić się w cierpliwość - UPX jest wolniejszy od MPRESSa przy tak mocnym
kompresowaniu)
Wyniki prezentują się następująco:
Różnica: 18432 bajty na niekorzyść UPX'a
7. No cóż, jest lepiej, ale UPX i tym razem nam nie zaimponował - mało,
że
się naczekaliśmy,
to rozmiar exeka jest nadal nieco większy niż ten sam skompresowany MPRESSem (w
międzyczasie jak UPX! sobie pakował MPRESS'em skompresowałem inną metodą na test,
czy plik będzie mniejszy)
=> dobra, nie róbmy afery o "marne" ~20 kB ->czego nie robi się, aby programom
antywirusowym zrobić dobrze? To najprostsza droga, skoro niektóre firmy potrafią olać
sprawę jak chociażby support *cenzura* - niby można zgłosić wątpliwe exeki, które zostaną
sprawdzone i ew. dodane na "białą listę" - spróbowałem i się zawiodłem. Za wysokie progi na
pirackie nogi
Oczywiście są chlubne wyjątki, ale nie oszukujmy się -> na 46 firm kilka(naście?) na pewno
się wyłamie.
Z drugiej strony ich rozumiem - dlaczego mają aktualizować swoje niezawodny algorytmy
dla osoby reprezentującą mało znaną firmę .
8. Wrzućmy plik i zobaczmy na VirusTotal, czy poświęcenie rozmiaru exeka korzystnie
wpłynie na ilość wykrywanych fałszywych alarmów.
9.
Raport:
BitDefender
--------------
Gen:Variant.Barys.50
Emsisoft
------------------
Gen:Variant.Barys.50 (B)
F-Secure
------------------
Gen:Variant.Barys.50
GData
---------------------
Gen:Variant.Barys.50
MicroWorld-eScan
-------
Gen:Variant.Barys.50
Niemożliwe! Czyżby na jaw wyszło,
że
przy mocnej kompresji dodaje się jakiś wirus?
Code:
Select all
Hmmmm, może rzeczywiście coś w tym musi być, skoro aż 5 programów się
pluło - trzeba będzie zrobić test z własnoręcznie skompilowaną
binarką!
Nie chce mi się. Zrobimy prostszy test.
Skoro nie ma
ŻADNYCH
wirusów przy kompresji LOW, zmieńmy parę bajtów...
1. Używając HexEditora (jest to program pozwalający edytować plik binarny, jakim jest plik
.exe) otwórzmy winuae.exe, który został spakowany upxem, metodą lekką.
2. Na samym początku pliku da się zauważyć napisy "UPX":
UPX_string.png
3. Wyedytujmy ten "autograf" zmieniając "UPX" na "SEX"
UPX_string_fake.png
:
4. Zapisujemy zmiany, wrzucamy na VirusTotal.
5.
Raport:
antyvir_troll.png
Okazuje się,
że
strollowaliśmy dwa silniki antywirusowe:
Agnitum
--------------
Suspicious!SA
eSafe
--------------
Suspicious File
Dosyć mało, ale ze względu na późną porę, pokażę tylko mój osobisty rekord, jaki można
osiągnąć zmieniając po prostu parę bajtów:
AntiVir--------------------TR/Crypt.XPACK.Gen
AVG-----------------------Win32/Heur
BitDefender--------------Trojan.Generic.8399328
F-Secure------------------Trojan.Generic.8399328
Fortinet-------------------Malware_fam.NB
GData---------------------Trojan.Generic.8399328
Ikarus---------------------Virus.Win32.Heur
McAfee--------------------Artemis!41A9F73D0A91
McAfee-GW-Edition------Artemis!41A9F73D0A91
MicroWorld-eScan--------Trojan.Generic.8399328
nProtect-------------------Trojan.Generic.8399328
Panda----------------------Suspicious-file
Sophos---------------------Mal/EncPk-ZE
Symantec------------------WS.Reputation.1
TrendMicro-HouseCall---TROJ_GEN.R47H1LB
VIPRE----------------------Trojan.Win32.Generic!BT
Podsumowanie:
Cóż mogę napisać... albo jestem genialnym programistą, który potrafi zmieścić wirusa w 1
bajcie, albo ktoś tu oszukuje Was, biedne owieczki...
Code:
Select all
Lejesz wodę, ale tłumaczysz się w miarę przekonująco, ale nadal Ci
nie wierzę!
Nie trzeba mi wierzyć. Wystarczy poczekać na exeki v2.6, w których już nie powinno
wykrywać fałszywych alarmów.
Raport:
Idziemy nawet o krok dalej. Chcemy zabezpieczyć Was przed zawirusowanymi exekami
(chociaż z takimi przypadkami jeszcze się nie spotkaliśmy).
Zgłoś jeśli naruszono regulamin