5

Aynı kodu Visual C++ ile aynı ikili üretmek için zorlamak için bir yolu var mı? PE'deki zaman damgasını kapatın ya da PE'deki zaman damgasını sabit bir değere, başka bir deyişle mi zorlayın?Visual C++ İkili Tekrarlanabilirlik

cevap

3

PE'yi açmak için bir yardımcı program yazabilir, sağlama toplamını 0'a ayarlayabilir, zaman damgasını istediğiniz gibi ayarlayabilir, crc'yi yeniden oluşturabilir ve sonra tekrar yazabilirsiniz. Yine de, mükemmel ikili yeniden üretilebilirliği sağlamak için resmi bir yol olsaydı güzel olurdu. Daha fazla bilgi için

: http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

3

O değil sadece bir zaman damgası - John Robbins explains olarak - PDB eşleşme için kullanılan gömülü bir GUID var.

derleyici yazarları sağlamak daha çabuk düzgün oluşturan bir kod işleyen ve onu üreten çok daha ilgi - Hatta bunun ötesinde

Jim Griesmer olarak explains, tutarlı sonuçlar üretmek için derleyici zorlamak için sadece bir yolu yok Oluşturulan her şey, sabit diskinizde aynı şekilde düzenlenir. Kodun optimize edilmesine yönelik sayısız ve çeşitli yöntemler ve uygulamalar nedeniyle, bir yapının, başka bir yapıdan fazla veya farklı bir şey yapmak için biraz daha fazla zamana sahip olması her zaman mümkündür. Böylece, nihai sonuç, aynı işlevsellik için farklı bir bit kümesi olabilir.

Böylece, fonksiyon ve bölüm düzeni sürekli Elde edilen PE sipariş edilmesi garanti bulunmaktadır. Bir örnek linkte.