Как я могу вычислить контрольную сумму кода во время выполнения?

У меня есть приложение С#.NET, запущенное на машине. Как вычислить контрольную сумму всего кода во время выполнения?

Примечание:

Я не хочу вычислять контрольную сумму используемого изображения, но фактическую часть кода.

Ответ 1

Я никогда не использовал это, но:

Используя отражение, вы можете перейти к GetILAsByteArray и выполнить контрольную сумму (для каждого метода).

Но я думаю, что будет намного проще использовать подписание кода или Assembly.GetExecutingAssembly, а затем выполнить контрольную сумму на .dll или .exe.

Ответ 2

Я бы просто использовал подпись кода, но если вы действительно хотите свернуть свое собственное решение (это может быть плохая идея. это хорошая вещь), вы можете использовать рефлексию, чтобы посмотреть код IL и вычислить контрольную сумму на основе этого. Это не очень приятное решение и может вызвать некоторые странные ошибки, поэтому, пожалуйста, сэкономить на некоторых проблемах и использовать подписание кода.

Ответ 3

В режиме исполнения у вас нет доступа к исходному исходному коду.

Ответ 4

сильное имя на вашей сборке делает это, но вам нужно доверять, что он работает как рекламируемый. Какова конкретная проблема, которую вы связываете?