2010-09-15 20 views

Odpowiedz

16

C++ jest kompilowany bezpośrednio do kodu maszynowego. Nie ma języka pośredniczącego jak w .NET. Istnieje some C++ disassemblers, na które możesz rzucić okiem. Hex-Rays decompiler jest szczególnie dobry.

+0

+1 dla Hex-Rays, wygląda świetnie! – Francesco

+0

+1 także dla Hex-Rays! Właśnie obejrzałem vid (na ich stronie internetowej) i to naprawdę wygląda coś czego od dawna szukałem! Dzięki! – Poni

1

W skrócie, nie. Każde "odbicie" musi odbywać się za pomocą jakiegoś ręcznego mechanizmu.

+0

Myślę, że Qt obsługuje coś takiego. – mpen

5

Uważam, że mówimy o niezarządzanym C++. W takim przypadku nie jest to możliwe. C++ jest wkompilowany w kod maszynowy w przeciwieństwie do języków zarządzanych, które kompilują się w języku pośrednim, który zawiera metadane dotyczące kodu, który został skompilowany.

1

Nie, C++ nie ma nic takiego jak reflektor RedGate i nie jest w stanie tego zrobić. Dezasembler nie zbliży się do tego, czego szukasz.

1

Kod dla introspekcyjnych możliwości może być generowany z wyjścia Gcc-XML, lub wstrzykiwany z OpenC++, ale sam standard C++ nie wymaga żadnych specjalnych udogodnień, a żadne urządzenia/narzędzia nie są dołączane do żadnego popularnego kompilatory. Możliwe jest także, że program w C++ odczytuje informacje o debugowaniu w swoim własnym pliku wykonywalnym, ale z pewnością nie jest zbyt przenośny, szybki lub może zapewnić solidne rozwiązanie.

Powiązane problemy