Программное обеспечение, которое я пишу (и продаю), сжимается и зашифровывается, прежде чем я распространю его. Каждый раз, когда я выпускаю новую сборку, я сохраняю все файлы .map и сгенерированные двоичные файлы, включая exe, до того, как он будет сжат и зашифрован.
Когда он вылетает на клиентской машине, я получаю обратно минидамп. Я открываю эти минидампы в Visual Studio и исследую их там.
Я хорошо использовал эти минидампы, ища адреса в файлах .map. Обычно это приводит меня в правильную область кода, и я могу обычно рассуждать о том, почему произошел сбой, и исправлять его, но это ОЧЕНЬ много времени.
Было бы полезно, если бы я мог использовать символы, которые я сохранил из исходной сборки, при отладке минидампа.
Моя проблема в том, что я получаю предупреждения о том, что не могу найти нужные символы. Мои исследования заставляют меня поверить, что это связано с тем, что контрольная сумма исполняемого файла на клиентском компьютере не совпадает с контрольной суммой исполняемого файла, созданного Visual Studio. И я понимаю, почему он был сжат и зашифрован. Конечно, контрольные суммы не совпадают.
Я полагаю, что могу вручную отредактировать минидамп или изменить контрольную сумму сохраненных двоичных файлов, чтобы она соответствовала контрольной сумме распространяемого файла. Я бы предпочел манипулировать сохраненными копиями, чтобы мне не приходилось модифицировать каждый дамп, который приходит, но я бы предпочел и то, и другое.
Итак, мой вопрос: как мне найти эти контрольные суммы и выяснить, чем их заменить? В качестве вспомогательного вопроса: есть ли способ лучше?