Tamagotchi III: pokaż ząbki
Skoro już wybrałem sobie moją maskotkę, warto przyjrzeć się jej bliżej, zanim pozwolę jej się odezwać, czyli się uruchomić.
Pewnie jacyś bardzo mądrzy ludzie po spojrzeniu w kod maszynowy programu wiedzą (przynajmniej mniej więcej), co dany program robi. Inni wolą patrzeć w assembler, który jest zdecydowanie bardziej przyjazny dla człowieka, a przejście między assemblerem a kodem maszynowym (w obie strony) jest dość proste. Ja aż tak mądry nie jestem, dlatego raczej wolę monitorować zachowanie wybranej maskotki, co mądrze można nazwać analizą behawioralną. Mimo wszystko kilka rzeczy z pliku programu wyczytać można spróbować.
Podstawowe cechy złapanej próbki widać na pierwszy rzut oka.
- suma kontrolna (md5): c1ab3a6d0df4667de52dac0c7b4a1595,
- rozmiar: 76 800 bajtów,
Czego można się więcej dowiedzieć?
Złośliwe oprogramowanie musi się ukrywać przed antywirusami. Jednym ze sposobów uniknięcia wykrycia, jest ciągła zmiana swojego wyglądu, tak, by antywirus miał problem z dopasowaniem odpowiedniej sygnatury. Dość częstą technika jest szyfrowanie i kompresowanie pliku wykonywalnego. Część narzędzi pozostawia swoją wyraźną sygnaturę. Można spróbować wykorzystać narzędzie typu PEiD do rozpoznania, czy została zastosowana kompresja lub szyfrowanie, a jeśli tak, to jakie narzędzie zostało wykorzystane. W tym przypadku jednak PEiD nie rozpoznał narzędzia. Być może by rozpoznał, gdybym zaopatrzył go w dodatkowe pluginy, jednak nie było takiej potrzeby. Inne przesłanki wyraźnie mówiły o tym, że plik jest skompresowany:
- duża entropia,
- mała liczba czytelnych dla człowieka stringów w pliku wykonywalnym,
- mała liczba importów (w porównaniu ze “zwykłym” programem),
- nazwy sekcji typu .packed oraz .RLPack ,
Zwłaszcza nazwa sekcji .RLPack była przydatna, google błyskawicznie wskazało użyte narzędzie: RLPack,
Entropię pliku można sprawdzić bezpośrednio w PEiD, można wykorzystać do tego celu również Cryptool (lub wersję polską). W CrypTool można wykorzystać dodatkowo floating frequency. Co do listy stringów, to oczywiście tradycyjne strings , a jeśli chodzi o analizę pliku wykonywalnego (taką dla bardziej opornych – czyli dla mnie), to wykorzystać można na przykład MiteC Exe Viewer, choć można również skorzystać z innych narzędzi.
Wracając do tematu RLPack, to znalazłem instrukcje rozpakowania, ale aż tak bardzo na tym mi nie zależy. Zresztą nawet nie chce mi się sprawdzać, czy wykorzystany jest “zwykły” RLPack, czy może “RLPack Premium/Full Edition”. Gdybym jednak ja wypuszczał tego robaka w świat, to zainwestowałbym te kilkadziesiąt euro...
Oryginał tego wpisu dostępny jest pod adresem Tamagotchi III: pokaż ząbki
Autor: Paweł Goleń