Optymalizacja kodu

binaryArtykuł prezentujący różnice w optymalizacji kodu przez najpopularniejsze kompilatory HLL, cała masa ciekawych snippetów i trików używanych do wyprodukowania optymalnego kodu (również odpowiada na odwieczne pytanie czym zerować rejestry sub-em, xor-em czy inaczej), polecam prawdziwym fanatykom assemblera 🙂

linux-kongress.org/…/compiler_survey_felix_von_leitner.pdf

Przy okazji polecam również ciekawy artykuł autorstwa Gynvaela Coldwinda o branchless code, czyli w skrócie jak pozbyć się z kodu skoków i zastąpić je inną serią instrukcji:

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

Gynvael opisał wszystko na poziomie HLL, więcej przykładów w assemblerze zaprezentował kilka lat temu virii writer z0mbie w artykule Polymorphic Games:

http://vx.netlux.org/lib/vzo43.html

Przy okazji na blogu Gynvaela znalazłem odnośniki do podobnego artykułu:

http://fanael.wordpress.com/…/jak-pisac-branchless-code-czesc-1/

http://fanael.wordpress.com/…/branchless-clamp-to-0-255/

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.

Hardcore compo

Na stronach forum uw-team pojawiła się informacja o konkursie zorganizowanym przez Gynvaela, cytuję:

OK, więc zabawa polega na tym że uczestnik dostaje wirtualną maszynę (RISCową), baaardzo prostą, pełną dokumentacje wraz ze źródłami do niej (read-only ;>) i hexedytor do ręki (ew jakiś program umożliwiający tworzenie binarnych plików, chodźby nasm+instrukcja db).

I teraz zadanie: napisać coś w tym… powiedzmy jakiś program, kilka programów+malutki fragment OSu, or sth ;> tu już freestyle ;>

Celem compo byłoby sprawdzenie siebie, tzn jak uczestnik by sobie poradził w skrajnie trudnych warunkach programistycznych (hexedytor + dokumentacja procka). Sądzę osobiście że to może być bardzo zabawne, czy nawet pouczające ;>

Więcej informacji i przykładowe kody źródłowe – tutaj

Poinformował: diabeł