2010-04-30 99 views
1

如何修改二進制的校驗和?
具體來說,我想編輯一個DLL/EXE的嵌入式校驗和。
有沒有可用的工具?更改二進制的校驗和

+1

什麼樣的二進制?目前還不清楚你在問什麼 - 有十六進制編輯器,它允許你編輯一個二進制文件,並將其中的數據的任何部分更改爲任何你想要的。你是否想實際編輯二進制文件,使得MD5等校驗和的計算方式不同,或者是否希望編輯嵌入校驗和而不實際更改文件的其餘部分?如果是後者,它是什麼樣的二進制?不同的二進制格式在不同的地方會有不同的校驗和。 – Vicky 2010-04-30 11:45:10

+0

我想編輯dll/exe中的嵌入式校驗和。 – anand 2010-04-30 11:54:29

+0

我不確定,但我認爲Windows會在運行時檢查DLL校驗和是否與它自己計算的內容相匹配,如果沒有,則會檢查它們。 – Vicky 2010-04-30 12:07:23

回答

0

你可以使用「十六進制編輯器」來修改DLL/EXE,但除非你知道如何反轉計算你的校驗和,它不會有太大的幫助。

+0

我只想將嵌入式校驗和的dll設置爲00000000,無法弄清楚我該怎麼做? – anand 2010-04-30 12:02:08

+1

底線是你需要更多的信息,而不是你給我們什麼類型的校驗和。 – NeuroScr 2010-04-30 12:29:41

+0

我在問題中添加了評論。 – anand 2010-04-30 12:36:25

0

OK,這個鏈接給你的Windows DLL /可執行文件的文件格式: http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf

你可以看到有在頭幾個可能palces進行校驗可存儲,其中一些是可選的,所以你需要解析圖像以找出內容。有像Python PE解析器這樣的工具可以幫助解決這個問題。

一旦您知道要更改哪些字節,請選擇一個十六進制編輯器並執行該操作。你甚至可以在Visual Studio中編輯二進制文件。

[編輯:但是,正如我上面的評論,我認爲Windows可能會在它BARF如果不匹配預期值]

1

的Windows只需要校驗是= 0內核模塊,你!不需要爲用戶模式模塊進行設置。如果您確實想要設置校驗和,請運行EDITBIN/RELEASE yourapp.exe,或致電CheckSumMappedFile()。有關校驗和算法的分析,請參閱this article