binary-reproducibility

    5熱度

    2回答

    根據我的經驗,重新編譯同一個Android應用程序的源代碼不會每次都產生相同的二進制文件。對於開發人員來說,可重複構建非常有效,但我認爲可重複構建過程最重要的好處是安全性。在開放源代碼的Android應用程序中,我們如何驗證生成的二進制文件(.apk)是否真的是從回顧的源代碼中編譯的?有什麼方法可以從Android SDK或Java生成可重現的版本?

    1熱度

    1回答

    我回來試圖比較兩個.exe的,這次有一些變化。在Microsoft Visual Studio 大廈項目2010 項目目標框架= .NET Framework 3.5的客戶端配置文件 我生成項目,運行dumpbin /rawdata的.exe和輸出到一個文本文件中。 接下來,我重新構建該項目,並在新的.exe上運行dumpbin /rawdata並輸出到新的文本文件。然後,我對每一個進行CRC校驗

    6熱度

    6回答

    我在搜索是否可以構建相同的Linux Kerneltwice(相同的源,相同的環境,相同的選項,相同的編譯器)並獲得相同的校驗和。 任何人都知道如何去做?

    5熱度

    3回答

    爲了進行二進制/源代碼驗證,我希望能夠在相隔2周的同一臺計算機上進行兩次編譯,並使二進制文件相同並因此通過一些校驗和測試。 到目前爲止,我發現最有可能的時間戳將由編譯器寫入二進制文件。我可以通過根據這個msdn文章對dumpbin/rawdata結果進行比較來解決這個問題。 http://support.microsoft.com/kb/164151 然而DUMPBIN導致大約十幾個地方仍不同,差

    1熱度

    4回答

    我有4個字節的數據,需要一個8字節的陣列進行安全操作。我應該從4字節的字節數組中產生這8個字節,這應該是可重複的。 我正在考慮使用精確的字節數組並添加4個額外的字節,並用已知序列中的AND,OR,XOR ...來填充初始數組。我不確定這是個好主意。我只需要從這4個字節中獲得一個8字節的數組,並且操作應該是可重複的(同樣的8個字節給定4個字節)。請在C#中給出一個示例:

    4熱度

    1回答

    我有一個程序在版本控制下經歷了多個版本。今天出現了一個情況,有人不知何故設法指向一箇舊的程序副本,因此遇到了已修復的錯誤。我想回去只是刪除程序的所有舊版本(保持它們是一個公司的政策,從版本控制是通用的,應該不再需要),但我需要一種驗證,我可以生成完全相同的可執行文件,比說「舊的來自這個提交,所以這個應該是相同的」。 我最初的想法是簡單地將MD5散列爲可執行文件,將哈希文件存儲在源代碼控制中,並且完

    0熱度

    1回答

    我試圖改善從〜400依賴關係構建1GB共享庫,然後剝離到100MB的生成時間。 依賴關係沒有被剝離,所以我認爲如果我之前預先剝離了依賴關係,它可能建立得更快(或從一開始就簡單地構建它們,而不是從-g開始構建它們)。 測試這個庫是一個很大的努力,但是如果新的構建過程產生完全相同的二進制文件,我可以避免測試。 我做了這個小測試,只有一個C++文件,lib.cc: int lib1_f1(int x)

    5熱度

    4回答

    當我使用C++編譯器生成項目時,如果源代碼中沒有更改,是否可以確保生成的二進制文件不受影響?它看起來像我每次重新編譯我的源代碼時,二進制文件的md5校驗和都會受到影響。編譯時間是否會影響生成的二進制文件?我怎樣才能產生可​​重複的編譯結果?

    1熱度

    2回答

    G'day, 這已經問過VC++,但我對Solaris的答案感興趣。使用命令 #include <stdio.h> int main() { printf("Hello world!\n"); return 0; } : 我編譯和鏈接下面的瑣碎的C代碼 cc -o hello1 hello.c 這做幾次獲得可執行文件hello2和hello3。這是在同一臺機器上使

    16熱度

    6回答

    我會給你一點背景的第一個爲什麼我問這個問題: 我目前在一個嚴格監管的行業工作,因此我們的代碼是相當仔細審查官方測試房屋。這些測試機構希望能夠構建代碼並生成一個每次都完全相同的.exe或.dll文件(顯然不需要更改任何代碼!)。他們檢查他們創建的可執行文件的MD5和SHA1以確保這一點。直到這一點,我主要是在C++中進行編碼,其中(在幾個項目設置調整之後),我設法使項目重建爲一致的MD5/SHA1。