Если пароль жестко закодирован в переменную в исходном коде, например VB, может ли кто-то извлечь этот пароль, просмотрев скомпилированный исполняемый код?Пароль извлекается из исполняемого кода?
Если да, что можно сделать, чтобы этого избежать?
Если пароль жестко закодирован в переменную в исходном коде, например VB, может ли кто-то извлечь этот пароль, просмотрев скомпилированный исполняемый код?Пароль извлекается из исполняемого кода?
Если да, что можно сделать, чтобы этого избежать?
Да, кто-то может.
Ничего не поделаешь, чтобы избежать этого. Обфускация сделает его немного сложнее.
В худшем случае, если кто-то не понимает ваш запутанный код, они могут запустить ваш исполняемый файл в отладчике и прочитать пароль из памяти непосредственно перед его использованием.
Решение, конечно же, не должно жестко кодировать важные пароли в ваши двоичные файлы.
Да. Пароль можно найти, наблюдая выполнение программы в отладчике. Если вы ничего не сделаете, это может быть даже возможно найти путем поиска текста в двоичном файле.
Что можно сделать? Существуют методы отладки, такие как обфускация или механизмы защиты от несанкционированного доступа, которые могут привести к взрыву исполняемого файла при отладке. Обфускацию, вероятно, легко реализовать. Анти-подделка будет сложной.
Anti-tampering также никогда не будет на 100% эффективным. Злоумышленник может активировать ваш код на виртуальной машине, а синяя таблетка подключает пароль к гипервизору; ваш код не имел бы никакого способа узнать, произошел ли этот тип атаки. – Borealid
Если отладчик может просматривать любую переменную, то как можно защитить пароль, используемый для доступа к базе данных, например? Наверняка любой такой пароль был бы в памяти до перехода в базу данных? – CJ7
@Craig: вы можете попросить пароль и сохранить его где-нибудь. Или в случае типичного веб-приложения пароль хранится в каком-либо файле конфигурации при установке программного обеспечения. Дело в том, что вы не можете получить доступ к базе данных, просто получив программное обеспечение, вам также нужна конфигурация. –
@Craig Johnston: для приложений с высокой степенью защиты вам необходим компьютер с высокой степенью защиты. Любые учетные данные, к которым компьютер имеет доступ, скомпрометированы, если компьютер физически скомпрометирован. Тем не менее, для большинства людей, имеющих файл конфигурации, читаемый только конкретным пользователем и выполняющий двоичный файл в соответствии с предполагаемыми разрешениями для пользователя, считается достаточным. – Borealid