Инсталлируйте приложение и проверьте, какие элементы управления доступом заданы для созданных объектов. А еще лучше подключиться к функциям, которые создают объекты, и запротоколировать задаваемые права (если приложение предоставляет такую возможность). Тем самым вы сможете увидеть несохраняемые объекты, например временные файлы, события и участки разделяемой памяти.

Что касается «зашитых» секретов, то проще всего проанализировать двоичный файл с помощью, например, такого инструмента, как strings (www.sysinternals.com/ ntw2k/source/misc.shtml#strings). Эта программа выводит все текстовые строки, встречающиеся в приложении, и смотрит, нет ли среди них чего–то похожего на пароль или набор случайных символов (быть может, это ключ?).

На рис. 12.1 приведен результат работы для небольшого двоичного файла. Взгляните на строку под Welcome to the Foo application. Похоже на неудачную попытку скрыть пароль или ключ!

Рис. 12.1 . «Сокрытие» пароля в приложении, написанном на языке С или С++

Для приложений, написанных на .NET–совместимом языке, например VB.NET, ]# или С#, можете воспользоваться программой ildasm.exe, поставляемой в составе .NET Framework SDK. Она позволяет выполнить тщательный анализ кода. Если вызвать ее, как показано ниже, то она выведет все строки. Посмотрите, нет ли среди встроенных паролей.