C ++ kaynak kodunu kaybettiğim bir programım var. Orada iyi C ++ çözücüler var mı?
Boomerang ile zaten karşılaştım .
C ++ kaynak kodunu kaybettiğim bir programım var. Orada iyi C ++ çözücüler var mı?
Boomerang ile zaten karşılaştım .
Yanıtlar:
Sen kullanabilirsiniz Pro IDA tarafından Hex-Rays . Hata ayıklama bilgilerini derlemediğiniz sürece, genellikle bir ikili dosyadan iyi C ++ elde edemezsiniz. Kodu tersine çevirmek için çok fazla el emeği harcamaya hazırlanın .
İkili dosyaları çıkarmadıysanız, IDA Pro'nun çalışmanız için C-benzeri kodlar üretebileceğinden biraz umut vardır. Genelde çok zor olsa da, en azından birkaç yıl önce kullandığımda.
bilgi derleme sürecinde atılır. Bir kod çözücü, sınıflar ve her şeyle mantıksal eşdeğer kodu üretebilse bile (muhtemelen yapamaz), kendi kendini belgeleyen kısım optimize edilmiş sürüm kodunda kaybolur. Değişken adı yok, rutin isim yok, sınıf ismi yok - sadece adresler.
Evet, ancak hiçbiri çabaya değecek kadar okunabilir kod üretmeyi başaramayacak. Eski uygulamanızı sıfırdan yeniden yazmak yerine, derlenmiş kaynağı içinde assembler blokları ile okumaya çalışmak için daha fazla zaman harcayacaksınız.
C ++ kodu oluşturan herhangi bir kod çözücü görmedim. C kodunu oluşturmak için makul bir girişimde bulunan birkaç deneysel olanı gördüm, ancak bunlar belirli bir derleyicinin kod oluşturma kalıplarının eşleştirilmesine bağlı olma eğilimindeydiler (bu değişmiş olabilir, buna son baktığımdan bu yana epey zaman geçti. ). Elbette herhangi bir sembolik bilgi gitmiş olacak. "Decompiler" için Google.
Orijinal kodun ne kadar büyük ve ne kadar iyi yazılmış olduğuna bağlı olarak, en sevdiğiniz dilde (yine de C ++ olabilir) yeniden başlamanız ve son sürümde yapılan hatalardan ders almanız faydalı olabilir. Biri atıp atmak için bir tane yazmaktan bahsetmemiş miydi?
nb Açıkçası, eğer bu çok büyük bir ürünse, o zaman ayırmaya değmeyebilir.
objdump
Linux için