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

Позволяет думают, о котором быстрее. Если можно выбрать просто данные, Вам нужно тогда, это быстрее. Однако в тестировании можно вытянуть все данные для оценки, какие данные могут быть отфильтрованы на основе бизнес-потребностей.

5
задан Jere.Jones 9 December 2009 в 18:58
поделиться

2 ответа

Всем респондентам,

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

По-видимому, я не делал этого. адекватно передать мою точку зрения, поэтому я попробую еще раз. Я хочу создать событие, которое происходит 100000 раз за период времени в 1 секунду с затратами процессора примерно 12%.

Программа, на которую я ссылался, Mach 3, генерирует частоту 108000, когда пользователь выбрал 100000, но частота очень стабильная. Я упоминаю это, чтобы проиллюстрировать, что точность фактического временного интервала не критична до тех пор, пока ошибка временного интервала постоянна.

Я еще раз упомяну, что Mach 3 работает с затратами процессора около 12%. Частота 108000 излучается на выводе параллельного порта, где ее можно проверить с помощью осциллографа, что я и сделал.

Другие респонденты в некоторой степени поняли, чего я хотел достичь, но их пример состоял в том, чтобы измерить количество циклов, которые могут произойти за период времени в 1 секунду, при этом признавая, что стоимость ЦП была неприемлемой.

По общему мнению, то, что я хочу делать, невозможно. Для тех, кто согласен с этим мнением, я бы посоветовал вам поискать в Google Mach 3 CNC , загрузить бесплатную копию программы и затем установить ее. Запустите программу, используйте вкладки, чтобы перейти на страницу диагностики, где вы сможете убедиться, что это действительно возможно. Программа сначала откроется, работая на частоте по умолчанию 25 кГц. Частоту можно изменить, открыв пункт меню «Конфигурация» / «Порты и контакты». / с последующим выбором новой частоты и повторным открытием программы.

Подобные форумы содержат большое количество сообщений, относящихся к этой теме, и ответы, по большей части, такие же, как и те, что я получил. Я привел пример, который ясно показывает, что это ВОЗМОЖНО, поэтому давайте разберемся, как Mach 3 выполняет эту задачу.

C4C

встроены в PE-заголовок исполняемого файла. Вы должны иметь возможность просмотреть его, запустив DUMPBIN / HEADERS для исполняемого файла и выполнив поиск выходных данных Debug Directories. Если ваше сжатие и шифрование изменили заголовки PE так, что эта информация недоступна (или верна), тогда это объяснит, почему ваш отладчик ничего не может найти.

Есть несколько подходов, которые, я думаю, вы могли бы предпринять, чтобы решить эту проблему. Чтобы действительно попытаться заставить это работать, вы можете рассмотреть возможность использования WinDbg вместо отладчика Visual Studio. Вы поймете, почему я рекомендую это через мгновение ...

WinDbg предоставляет несколько опций, которые позволяют легко загружать файлы символов. Идея этой опции заключается в том, что если исходный код не изменился, но двоичные файлы взяты из другой сборки, чем PDB, от проверки GUID можно отказаться и загрузить файл несовпадающих символов. Я не знаю, насколько хорошо это будет работать с вашим сжатием и шифрованием, поэтому YMMV.

WinDbg и сопутствующие ему инструменты можно использовать для дампа GUID как из исполняемого файла, так и из PDB, но я пока опускаю это потому что я надеюсь, что эти шаги не понадобятся.

После того, как вы открыли свой минидамп в WinDbg, вам нужно будет ввести несколько команд в командную строку, чтобы все это заработало:

.symopt +0x40
!sym noisy
ld <exe name>

Первая команда включает параметр SYMOPT_LOAD_ANYTHING , который пропускает проверку GUID. Команда ! Sym включает подробный вывод для загрузки символов, чтобы вы могли видеть более подробные сообщения об ошибках. Команда ld указывает WinDbg на попытку загрузить символы для имени исполняемого файла, которое вы введете вместо <имя exe> . Если вы повторите команду ld , WinDbg укажет, успешно ли он загрузил символы в первый раз.

Надеюсь, это поможет - опять же, я не знаю, насколько хорошо это будет работать с вашим сжатием и шифрование, но попробовать стоит.

5
ответ дан 14 December 2019 в 19:16
поделиться

Это сжатие / шифрование что-то вроде UPX? Если фактическое исполняемое содержимое двоичных файлов изменяется (как это делается с такими инструментами, как UPX), вам не повезет (если вам не нравится отлаживать сложные приложения на языке ассемблера). Действительно ли ваше программное обеспечение настолько важно / особенное, что его двоичные файлы необходимо зашифровать перед доставкой? По моему опыту, способность отлаживать аварийные дампы намного важнее, чем мешать людям выполнять обратную разработку вашего кода.

0
ответ дан 14 December 2019 в 19:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: