Czy jest dekompiler C++? [zamknięte]

Mam program, w którym zgubiłem kod źródłowy C++. Czy są jakieś dobre Dekompilatory C++?

Już natknąłem się na Bumerang .

Author: abatishchev, 2008-10-15

5 answers

Możesz użyć IDA Pro przez Hex-Rays . Zwykle nie dostaniesz dobrego C++ z binarnego, chyba że skompilujesz w debugowaniu informacji. Przygotuj się na wydanie partii pracy fizycznej.

Jeśli nie rozebrałeś binariów, jest jakaś nadzieja, ponieważ IDA Pro może wyprodukować kod podobny do C, z którym możesz pracować. Zazwyczaj jest bardzo szorstki, przynajmniej kiedy używałem go kilka lat temu.

 67
Author: David Holm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 15:08:12

Informacja jest odrzucana w procesie kompilacji. Nawet jeśli dekompiler mógłby wytworzyć logiczny odpowiednik kodu z klasami i wszystkim (prawdopodobnie nie może), część samodokumentująca zniknie w zoptymalizowanym kodzie wydania. Żadnych nazw zmiennych, nazw rutynowych, nazw klas-tylko adresy.

 20
Author: Dustin Getz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 15:20:47

Tak, ale żaden z nich nie będzie w stanie wyprodukować wystarczająco czytelnego kodu, aby był wart wysiłku. Będziesz spędzać więcej czasu próbując odczytać dekompilowane źródło z blokami asemblera w środku, niż przepisując swoją starą aplikację od zera.

 18
Author: m_pGladiator,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 15:12:35

Nie widziałem żadnych dekompilatorów generujących kod C++. Widziałem kilka eksperymentalnych, które podejmują rozsądną próbę wygenerowania kodu C, ale zwykle zależą od dopasowania wzorców generowania kodu określonego kompilatora(to może się zmienić, minęło trochę czasu od ostatniego spojrzenia na to). Oczywiście wszelkie symboliczne informacje znikną. Google dla "dekompilatora".

 6
Author: Ferruccio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 17:47:59

W zależności od tego, jak duży i jak dobrze napisany był oryginalny kod, może warto zacząć od nowa w swoim ulubionym języku (którym może być nadal C++) i uczyć się na błędach popełnionych w ostatniej wersji. Czy ktoś kiedyś nie mówił o napisaniu jednego do wyrzucenia?

N. B. oczywiście, jeśli jest to ogromny produkt, to może nie być wart czasu.

 3
Author: harriyott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 15:16:21