我編寫(和銷售)的軟件在分發之前被壓縮和加密。每次我發佈一個新版本時,我都會保存所有的.map文件和生成的二進制文件(包括exe文件),然後對其進行壓縮和加密。如何在小型轉儲中更改模塊的校驗和?
當它在客戶機上崩潰時,我得到一個小型轉儲。我在Visual Studio中打開這些小型轉儲並在那裏探索它們。
我通過在.map文件中搜索地址,很好地使用了這些小型轉儲。這通常會讓我處於正確的代碼區域,我通常可以推斷爲什麼發生崩潰並修復它,但這非常耗時。
如果我可以使用我在調試minidump時從原始版本中保存的符號,這將會很有幫助。
我的問題是,我收到有關無法找到正確符號的警告。我的研究使我相信這是因爲客戶端機器上exe的校驗和與Visual Studio構建的exe的校驗和不匹配。我明白爲什麼它被壓縮和加密。校驗和當然不匹配。
我想我可以手動編輯minidump或更改保存的二進制文件的校驗和以匹配可分發的校驗和。我寧願操縱存儲的副本,所以我不必修改每個轉儲進來,但我會與任何轉載。
所以,我的問題是:我如何找到這些校驗和並找出我應該替換它們?作爲一個輔助問題:有沒有更好的方法?
我覺得第一個命令應該是.symopt + 0x40(你忘了最初的點)。 – Patrick 2010-03-08 10:35:15