2010-07-30 4 views
2

Если пароль жестко закодирован в переменную в исходном коде, например VB, может ли кто-то извлечь этот пароль, просмотрев скомпилированный исполняемый код?Пароль извлекается из исполняемого кода?

Если да, что можно сделать, чтобы этого избежать?

ответ

9

Да, кто-то может.

Ничего не поделаешь, чтобы избежать этого. Обфускация сделает его немного сложнее.

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

Решение, конечно же, не должно жестко кодировать важные пароли в ваши двоичные файлы.

+0

Если отладчик может просматривать любую переменную, то как можно защитить пароль, используемый для доступа к базе данных, например? Наверняка любой такой пароль был бы в памяти до перехода в базу данных? – CJ7

+0

@Craig: вы можете попросить пароль и сохранить его где-нибудь. Или в случае типичного веб-приложения пароль хранится в каком-либо файле конфигурации при установке программного обеспечения. Дело в том, что вы не можете получить доступ к базе данных, просто получив программное обеспечение, вам также нужна конфигурация. –

+0

@Craig Johnston: для приложений с высокой степенью защиты вам необходим компьютер с высокой степенью защиты. Любые учетные данные, к которым компьютер имеет доступ, скомпрометированы, если компьютер физически скомпрометирован. Тем не менее, для большинства людей, имеющих файл конфигурации, читаемый только конкретным пользователем и выполняющий двоичный файл в соответствии с предполагаемыми разрешениями для пользователя, считается достаточным. – Borealid

1

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

Что можно сделать? Существуют методы отладки, такие как обфускация или механизмы защиты от несанкционированного доступа, которые могут привести к взрыву исполняемого файла при отладке. Обфускацию, вероятно, легко реализовать. Анти-подделка будет сложной.

+1

Anti-tampering также никогда не будет на 100% эффективным. Злоумышленник может активировать ваш код на виртуальной машине, а синяя таблетка подключает пароль к гипервизору; ваш код не имел бы никакого способа узнать, произошел ли этот тип атаки. – Borealid

Смежные вопросы