Chciałbym uzyskać kod z C++ dll, wiem, że łatwo uzyskać z. Net dll przez reflektor. Czy jest dostępna jakaś metoda dostępna w języku C++?Czy istnieje jakaś koncepcja w C++ jak reflektor w .Net?
Z góry dziękuję
Chciałbym uzyskać kod z C++ dll, wiem, że łatwo uzyskać z. Net dll przez reflektor. Czy jest dostępna jakaś metoda dostępna w języku C++?Czy istnieje jakaś koncepcja w C++ jak reflektor w .Net?
Z góry dziękuję
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.
W skrócie, nie. Każde "odbicie" musi odbywać się za pomocą jakiegoś ręcznego mechanizmu.
Myślę, że Qt obsługuje coś takiego. – mpen
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.
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.
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.
+1 dla Hex-Rays, wygląda świetnie! – Francesco
+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