Październikowa zamuła

Jesień w toku, zimno jak cholera, dlatego kilka ciekawych rzeczy, na które ostatnio natrafiłem.

Mateusz Jurczyk vel j00ru znalazł sporo błędów w IDA, co opisał w swojej prezentacji na:

https://j00ru.vexillium.org/?p=2454

Na blogu Grzegorza Anotniaka znajdzicie ciekawy artykuł o tzw. globbingu, naprawdę interesująca lektura dla kogoś, kto tworzy narzędzia wykorzystywane z linii komend:

http://anadoxin.org/blog/blog/20141016/enabling-globbing-in-a-console-win32-application/

Gynvael Coldwind jak zwykle nie zawodzi i na jego blogu znajdziecie tutorial ze Strefy CTF (seria artykułów dla magazynu Programista):

http://gynvael.coldwind.pl/?id=545

Sebastien Andrivet opublikował obfuscator dla C++ bazujący na metaprogramowaniu, coś co kiedyś kolega deus próbował zaimplementować bez skutku:

https://github.com/andrivet/ADVobfuscator

Michał Grzegorzewski napisał artykuł o wykorzystaniu nowego narzędzia od Microsoft – Sysmon. Oprócz tego, jeśli przejrzycie jego blog to możecie się zdziwić ile ciekawych wpisów na temat internalsów Windowsa popełnił:

http://zine.net.pl/blogs/mgrzeg/archive/2014/10/17/sysmon.aspx

Z innych ciekawych rzeczy, o których w sumie niedawno się dowiedziałem i co mnie zaskoczyło to zakończenie produkcji exe-protectora i systemu licencyjnego Armadillo aka Software Passport:

http://www.siliconrealms.com/

Świeczka na drogę [i] w postaci uniwersalnego unpackera dilloDIE 😛

Fabian “ryg” Giesen znany koder z grupy demoscenowej Farbrausch napisał o wadach i zaletach systemów little i big endian oczami programisty:

http://fgiesen.wordpress.com/2014/10/25/little-endian-vs-big-endian/

Obfuscator v2.0

Właśnie wydałem nową wersję swojego oprogramowania Obfuscator v2.0.

Obfuscator służy do modyfikacji kodu źródłowego assemblera (dla składni MASM), w taki sposób, aby wynikowy kod był jak najbardziej skomplikowany do analizy.

Główne okno Obfuscatora

Do tego celu Obfuscator stosuje wiele metod jak:

  • mutacja instrukcji assemblera na serię innych równoznacznych instrukcji
  • zmiana wykonywania ścieżki kodu na nielinearną (skoki w górę i w dół w codeflow)
  • wstawianie nieinwazyjnych konstrukcji kodu utrudniających statyczną i dynamiczną analizę
  • ukrywanie bezpośrednich wywołań funkcji WinAPI
  • wstawianie junków między prawdziwe instrukcje
  • wstawianie fałszywych instrukcji
  • wstawianie celowych wyjątków i bramek SEH, które te wyjątki wyłapują, a utrudniają tracing
  • rozpoznawanie ponad 15000 stałych WinAPI i ich zamiana na postać liczbową, co pozwala mutację instrukcji je wykorzystujących

Kod wyjściowy po zastosowaniu Obfuscatora

Obfuscator to niszowe narzędzie, które stworzyłem dosyć dawno temu w PHP, a obecnie przeszło gruntowne zmiany, praktycznie cały silnik został przepisany, poprawiona została analiza kodu źródłowego, mutacje bazujące na matematycznych transformacjach zostały przepisane z wykorzystaniem biblioteki GMP dla zachowania kompatybilności z typem danych unsigned int, z którym PHP sobie po prostu nie radzi. Dodałem także rozpoznawanie stałych wartości wykorzystywanych w funkcjach WinAPI jak np. MB_ICONINFORMATION, które zostają zamienione na wartości liczbowe, dzięki czemu instrukcje je wykorzystujące mogą być poddane mutacjom.

Jeśli jesteście ciekawi jak to działa, zajrzyjcie na stronę programu, gdzie możecie ściągnąć klienta dla systemu Windows:

https://www.pelock.com/products/obfuscator

Znajdziecie tam też przykładowy skompilowany plik EXE przed i po zastosowaniu Obfuscatora – polecam spojrzeć na kod w IDA, Hiew i spróbować pośledzić go w OllyDbg.

Jeśli macie jakieś pytania, sugestie lub zastrzeżenia – piszcie w komentarzach.

x86 obfuscator API

Wakacje się skończyły, wróciłem do domu i od razu złapałem kontuzję kolana, więc cóż innego mógłbym zrobić jak nie siaść do komputera… doh, miałem trochę requestów na udostępnienie API do mojego obfuscatora dla x86, więc z nudów klepnąłem implementację w PHP:

A tutaj kod, jakby ktoś chciał zabezpieczyć swoje źródłka:

28F2-4D58-4652-7BE1

Obfuscator x86

Szaleństwo – jakby to napisali w reklamie Media Markt (tyle, że bez Michała Wiśniewskiego, bo odmówił udziału w tej promocji), rozdają za darmo kody do Obfuscatora kodu x86, który z twojego kodu wykrywanego przez wszystkie antywirusy zrobi sieczkę nie do rozpoznania nawet przez MksVira 🙂

https://www.pelock.com/products/obfuscator

Tak wygląda kod po jego zaciemnieniu:

Obfuscated

Każdy kto chce otrzymać promocyjny pakiet w wysokości 123 darmowych kredytów proszony jest o kontakt z redakcją i podanie jednego powodu, dla którego chce zamotać swój kod w assemblerze.