Ne yazık ki kaynak kodumu kaybettim ve ben sadece linux gcc ile yapılan çıkış dosyası var ve ben şimdi benim pc herhangi bir erişim yok. Çıkış dosyasını kaynak dosya (linux altında c) dönüştürmek için herhangi bir yolu var mı?
Ne yazık ki kaynak kodumu kaybettim ve ben sadece linux gcc ile yapılan çıkış dosyası var ve ben şimdi benim pc herhangi bir erişim yok. Çıkış dosyasını kaynak dosya (linux altında c) dönüştürmek için herhangi bir yolu var mı?
Yanıtlar:
Yani bir ineğin vardı, ama yanlışlıkla onu hamburgere dönüştürdün ve şimdi ineğini geri istiyorsun.
Üzgünüm, sadece bu şekilde çalışmaz.
Kaynak dosyayı yedeklemelerinizden geri yüklemeniz yeterlidir.
Ah, yedeklemen yoktu. Ne yazık ki, evren size bunun için bir mola vermiyor.
Sen edebilirsiniz koda ikili. Bu size kaynak kodunuzu vermeyecektir, ancak aynı davranışa sahip bazı kaynak kodları verecektir . Hata ayıklama ikili değilse değişken adlarını alamazsınız. Optimizasyon olmadan derlemediğiniz sürece aynı mantığı elde edemezsiniz. Açıkçası, yorum almayacaksınız.
Bazı programları koda etmek için Boomerang kullandım ve sonuç makine kodundan daha okunabilir oldu. Orada en iyi araç olup olmadığını bilmiyorum. Her neyse, mucizeler beklemeyin.
Bir yürütülebilir dosyayı tersine mühendislikte birçok araç yaygındır.
Çoğu durumda, kodun sıfırdan yeniden yazılması, bir montaj dili programı olarak tutulması veya değişiklik isteklerinin eski bir sürüme yeniden uygulanmasıyla yeniden oluşturulması gerekiyordu.
Yapmak istediğiniz şeye "ayrıştırma" denir. Dışarıda çok sayıda decompiler var ve hepsini burada ele almak pratik değil.
Ancak, genel bir açıklama olarak: C kaynağından yürütülebilir makine koduna dönüşüm kayıptır. Örneğin:
Kodun yazılı olarak derlenmesi nadirdir. Çoğu derleyici bu gün kodunuzu optimize etmek için büyük ölçüde değiştirecektir. Böylece, derleme yaptığınızda, derleyici sadece kaynak kodun nasıl görünmesi gerektiğini tahmin edebilir , kodunuzun ne olduğunu bilmenin bir yolu yoktur , çünkü bu gitti. Decompiler iyi ise, aldığınız kod en azından eşdeğer bir yürütülebilir dosyaya derlenebilir ve daha sonra okunabilir olması için yavaşça yeniden düzenleme başlatabilirsiniz. Ancak büyük olasılıkla kod çözücü kesinlikle okunamayan spagetti kodu üretecek ve deşifre etmek büyük bir baş ağrısı olacaktır. Bazen, programı sıfırdan yeniden yazmak daha az iş olabilir .