Jak kupić laptopa za 10 zł
Wszyscy pewnie znają już te wszystkie serwisy gdzie każda licytacja jest płatna, jednak na koniec można sprzęt wykupić za grosze. Każdy pewnie zdaje sobie sprawę jak minimalna jest szansa na wygraną jeśli się nie wykupi od razu tysiąca podbić i nie ustawi automatu. Czy jest nadzieja by wygrać?
Odwracanie hashy - część druga
Jak już wcześniej pisałem jeśli nam zależy na znacznej poprawie szybkości działania programu do łamania haseł, najlepsze co można zrobić to spróbować ograniczyć liczbę kroków jaką wykonuje algorytm, przez odpowiednie spreparowanie hasha.
Teraz dalszy ciąg i nieco wyjaśnienia jak to dalej rozwinąć; ciągle zostajemy przy MD5 :)
Odwracanie hashy - optymalizacja ekstremalna
Ponieważ piszę program służący do łamania hashy, naturalnym jest że staram się go jak najlepiej zoptymalizować. Najpierw są proste metody - ograniczyć ilość wykonywanych operacji, zamienić wszystkie wartości jakie można przewidzieć na stałe; usunąć wszelkie głupoty jakie ktoś mógł wrzucić do kodu wybranego algorytmu (niech ktoś zgadnie jak wygląda zamiana wartości binarnej hasha na tekst w formie hex przy popularnych implementacjach). Dalej jest użycie optymalnych flag kompilatora (i dobry kompilator też robi swoje). To wszystko jest bardzo proste, łatwe i przyjemne, jednak nie daje zbyt oszałamiających wyników. Owszem, to też się liczy - ale to jest niewiele zmian, daje to niewielkie pole do popisu.
wolframalpha a program
Od kiedy usłyszałem o WolframAlpha (i potestowałem) miałem ochotę dodać taką funkcję do mojego bota ircowego - po przekopaniu się przez ich dokumentację można się dowiedzieć że owszem, jest api. Jest pięknie udokumentowany. Szkoda że host na jakim miał ten api się znajdować nie istnieje...
Więc dziś, mając chwilę nudy dodałem obsługę w sposób maksymalnie głupi i niewydajny, jak najbrzydszy, ale jednak działający. Tutaj wklejka zawierająca przykładowy kod (Ruby) który nam zwróci wynik wyszukiwania z WA.
Sposób obsługi banalny - puts wolfram("1+1+1+1").inspect
yet another password cracker
Po co powstają programy? Mówi się, że powstają gdy zachodzi taka potrzeba. Tak też było w tym wypadku – na początku sobie tak dla zabawy skrobałem prosty program do łamania md5, który niczym wyjątkowym nie był. Później się okazało że potrzebuję odzyskać hasło do hasha – ale nie miałem kompletnego, tylko kawałek. Z pewnej bazy danych udało mi się wyciągnąć tylko fragment hasha, i co tu teraz zrobić? Ano tak zrobiłem, by mój program porównywał tylko fragment hasha. Działało, hasło odzyskałem :)