брутфорсом? это практически невозможно.подобрать будет достаточно проблематично
Если пароль не очень сложный - можно пробить его по базе md5 хэшей, благо таких сервисов - уйма.Kaster сказал(а):брутфорсом? это практически невозможно.
Сам пароль получить будет не просто, но вот код программы, почти весь можно получить.сможет ли кто-то из форумчан его взломать
Осталось только придумать, как и кому давать пароль (если предполагается использовать программу в коммерческих целях)Я правда не вижу в этом смысла, пароль всё равно будет непросто получить, ведь требуется ввод пользователя, и без пароля расшифровать не получится.
И все-таки..? Код проги выдрался?На этом месте разделил файл на два куска.
не пойму... это не так... пароль паролем я не шифровал... (Или может мы о разных вещах говорим?)идея с шифрованием пароля самим паролем
Какю именно?Честно говоря, я вашу мысль не улавливаю
Так я о чём и говорю, для хранения пароля при условий что требуется ввод пароля пользователем, достаточно метода от dwerf (зашифровка пароля самим паролем), а всё остальное лишнее.Если вопрос в защите от декомпиляции, то IMHO это напрасная трата времени.
MD5 чего? ещё раз повторю, если не требуется ввод пользователя, то нет надёжного способа хранения пароля в программе.если вопрос в хранение пароля внутри программы, то мне интересно, чем плох MD5?
Да! см. тему с начала.Свой же пароль зашифрован паролем?
Шифровал часть данных из Encrypted.exe, пароем который вводит пользователь. Т.ч вся кухня с дополнительным exe лишняя.пароль паролем я не шифровал
Согласен.если не требуется ввод пользователя
Смысл есть, у меня есть пару программ где мне нужно хранить пароль от почтового ящика в скрипте (для отправки писем из скрипта). Пока обошёлся созданием отдельно ящика, специально для программыСкажу больше, в чём тогда вообще смысл пароля, если не нужна ответная часть.
Чего я и хотел добиться - скрыть код проги от посторонних глазкак то не до конца...
тогда можно декомпилировать скрипт, повырезать "мешающие" куски, скомпилировать и пользоваться дальше... Поэтому я и использовал внутренний exe (который по идее не должен декомпилироваться, т.к. в нем "не правильный" кусок).Но вот сама идея с шифрованием пароля самим паролем указывает на то что не требуется никаких модулей, можно в самом скрипте всё хранить.
#include <string.au3>
$File_to_encrypt = FileOpenDialog ('', '', '(*.exe)', 1)
if $File_to_encrypt = '' then Exit
$password = InputBox ('', '', '', '*')
If $password = '' then Exit
$open_file_to_encrypt = FileOpen($File_to_encrypt, 16)
$data_file_to_encrypt = FileRead($open_file_to_encrypt)
FileClose($open_file_to_encrypt)
$part_to_encrypt = StringRight($data_file_to_encrypt, 256)
$key = StringRight($data_file_to_encrypt, 128)
$encrypted_part = _StringEncrypt(1, $part_to_encrypt, $password)
$encrypted_part_len = StringLen ($encrypted_part)
$data_file_to_encrypt = StringReplace ($data_file_to_encrypt, $part_to_encrypt, $encrypted_part)
$open_file_to_encrypt = FileOpen (@ScriptDir&'\Enrcypted.exe', 18)
FileWrite($open_file_to_encrypt, $data_file_to_encrypt)
FileClose($open_file_to_encrypt)
$key_file = FileOpen (@ScriptDir&'\key.txt', 2)
FileWrite($key_file, $key&@CRLF&$encrypted_part_len)
FileClose($key_file)
;----------------------------------
#include <string.au3>
#include <file.au3>
$tmp_encrypted = _TempFile()
$tmp_decrypted = _TempFile()
FileInstall ('d:\Danil\Рабочий стол\TestAutoit\Enrcypted.exe', $tmp_encrypted)
$open_file_to_decrypt = FileOpen ($tmp_encrypted, 16)
$data_file_to_decrypt = FileRead ($open_file_to_decrypt)
FileClose($open_file_to_decrypt)
$encrypted_part = StringRight ($data_file_to_decrypt, 'Здесь должна быть длина зашифрованного куска')
Do
$password = InputBox (@ScriptName, 'Пароль пожалста....', '', '*', 200, 100)
If $password = '' then
FileDelete ($tmp_encrypted)
Exit
EndIf
$decrypted_part = _StringEncrypt(0, $encrypted_part, $password)
Until StringInStr ($decrypted_part, 'Сюда нужно вставить ключ') <> 0
$data_file_to_decrypt = StringReplace ($data_file_to_decrypt, $encrypted_part, $decrypted_part)
$open_file_to_decrypt = FileOpen ($tmp_decrypted, 18)
FileWrite ($open_file_to_decrypt, $data_file_to_decrypt)
FileClose ($open_file_to_decrypt)
RunWait ($tmp_decrypted)
FileDelete ($tmp_decrypted)
FileDelete ($tmp_encrypted)
+1. Теперь стало ясно для чего эта заморочка.тогда можно декомпилировать скрипт, повырезать "мешающие" куски, скомпилировать и пользоваться дальше... Поэтому я и использовал внутренний exe (который по идее не должен декомпилироваться, т.к. в нем "не правильный" кусок).
Ну в принципе да. А у меня получилось, что пароль нужен и для работы и для открытия кода. Единственный минус - если знаешь пароль то легко можно стащить из папки tmp рабочий exe. Но можно еще и слежение за буфером прикрутить, но мне было леньКонечно, без пароля не возможно вытащить код, но работа программы как бы предполагает наличие пароля, а иначе её можно просто упаковать в архив с паролем.