Testowałem kiedyś (dość krótko) Cuttera, ale nie odniosłem wtedy wrażenia, żeby miał przewagę nad IDA czy Ghidrą.
Zrobiłem szybki test dzisiaj. Dekompilator nie potrafił zmapować rejestrów na zmienne. Wywalił się też w ciągu pierwszych 5 minut pracy i stwierdziłem, że wystarczy. ;-)
Potwierdzam. Używałem kiedyś cuttera, ale mnie nie zachwycił. Sam pakiet radare2 obecnie traktuję jako taki zestaw narzędzi/framework na bazie, którego mogę w miarę szybko zrobić jakieś narzędzie do automatycznego zbierania informacji o binarkach. Np skrypt po tytułem: znajdź w binarce wszystkie użycia funkcji system/popen i postaraj się ustalić jaka komenda systemowa jest przez nie wykonywana.
Bo ja jestem jakiś minimalistyczny. Kiedyś mnie zachwycało, że coś robi deasm. Uważałem, że to spore ułatwienie. Potem byłem w szoku, jak do asma dodawało komentarze z fragmentem kodu źródłowego. Można było wiedzieć, gdzie się jest. Tu uznałem, że wystarczający jest dla mnie ten graf z fragmentami asma.
Z drugiej strony podobało mi się, kiedy BenEater kodował w kodzie maszynowym. To było ciekawe bo mógł rozwinąć własne narzędzie do ułatwiania tego. Wyewoluować odmienną ścieżkę informatyki. Więc nawet to powtórzyłem kodując na Game Boya w kodzie maszynowym “Z80”.
“Może jestem nienormalny, za krótko miałem amigę, może jakiś emeryt covida sprzedał mi.”
Moim zdaniem następnym etapem w tej dziedzinie będzie zastosowanie uczenia maszynowego do konwersji asemblera na języki wysokiego poziomu.
Zrobienie takiego modelu jest pewnie w zasięgu możliwości dużego korpo i mogłoby zrewolucjonizować inżynierię wsteczną.Słyszałem, że już jest dobre w wykrywaniu błędów w kodzie źródłowym. Ktoś nawet prosił na X MS, żeby przeskanowali projekty FLOSS za pomocą AI.
Więc może kiedyś we wszystkim będzie można bezpiecznie kodować. Bo jak by co AI da ci klapsa.
Mi się wydaje, że twórcy AI dążą do tego by ostatecznym językiem programowania był angielski. Brak precyzji będzie rozwiązany ciągłym doprecyzowaniem wymagań. To się z czasem będzie poprawiać. Bo telemeria zobaczy jakich określeń i skrótów myślowych ludzie używali na początku, by określić to co wyszło na końcu.
Ostatecznie to AI będzie pełniło rolę wykonawczą, zamiast generować kod.
Przynajmniej w dziedzinie powłoki i skryptów.
naur, kiedy używa C++ https://youtu.be/Hr-6LRpTBno
Kiedy AI generuje mi kod, czuję się jak dziecko któremu odebrano cukierka.
Dla mnie radare2 to taki vim deasemblerów. Spore możliwości, ale ukryte za interfejsem, który odstrasza.
Podoba mi się, że w oficjalnej instrukcji są zamieszczone crackme dla treningu. :-)
Myślałem, że klimat VIM ci się podoba?
Naurowi może i vim się podobać, ale umówmy się, że jednak większości się nie podoba. Kilka przykładów poleceń radare2:
-iz - wyświetlenie stringów z sekcji data -izz - tak wyświetlamy stringi z całej binarki -pdf - deasemblacja wybranej funkcji -iI - a tak wyświetlamy informacje o pliku -a - analiza binarki, ale im więcej literek “a” tym dokładniejsza analiza (na ostatnim etapie jedzie do Ciebie deweloper radare2, żeby osobiście zrewersować ci binarkę ;-) )
Wiem, że za formatem tych komend stoi pewna stara indiańska filozofia, ale umówmy się, że nie jest to najprzyjemniejszy zapis poleceń aplikacji. Co nie zmienia faktu, że szanuję radare2 za spore możliwości i że można na jego bazie robić swoje narzędzia.
Z jednej strony można się nabijać i narzekać. Bo dla osoby postronnej to wygląda dziwnie.
Z drugiej strony, jeśli komuś to narzędzie jest potrzebne to się tego nauczy. Z czasem nawet uzna za wygodne. Bo te rzeczy staną się częścią jego natury.
Kod maszynowy też wygląda okropnie. Ale zaimponował mi Woz i Ben. To fajne ćwiczenie.
Macie jakieś ćwiczenia na paranoję?
“Macie jakieś ćwiczenia na paranoję?”
Zwijanie aluminiowej czapeczki na czas ;-)
-a - analiza binarki, ale im więcej literek “a” tym dokładniejsza analiza (na ostatnim etapie jedzie do Ciebie deweloper radare2, żeby osobiście zrewersować ci binarkę
LOL, podobno w GCC dla dużych wartości -O przylatuje pan Kazushige Goto i poprawia kod maszynowy.
Z innej beczki, kojarzysz czy radare2 ma jakieś wparcie dla rozpoznawania funkcji na podstawie sygnatur? Coś jak FLIRT z IDA.
Dla mnie to był killer-feature tego narzędzia.Nie mam zbyt dużego doświadczenia z IDA, ale może Zignatures to jest to czego szukasz https://radareorg.github.io/blog/posts/zignatures/
EDIT: Jest jeszcze coś takiego https://github.com/Maktm/FLIRTDB
Specjaliści z google twierdzą, że te bazy FLIRT z IDA można załadować do radare2.