Автор Тема: [Криптография] Установить пароль на запуск EXE  (Прочитано 1704 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн mrsoros [?]

  • Новичок
  • *
  • Сообщений: 18
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Проблема как я понял актуальная. Мне понадобилось установить пароль на exe-файл. И я не нашел ни чего толкового в инете + что бы не ругался антивирус.
Скрипт написал за 30 мин. Это не панацея. Продвинутый пользователь сможет получить доступ к exe и потом запускать его без пароля.
В общем делаем так:
1. Устанавливаем на exe атрибуты - только чтение, системный, скрытый, архивный.
2. Пакуем его 7z архиватором с паролем.
3. для работы понадобятся файлы: 7-zip.dll 7z.dll 7zG.exe. Они должны быть в папке со скриптом.
4. удаляем exe.
5. настраиваем скрипт под себя.
Вроде всё. Если не вдаваться в детали)
Код: AutoIt [Выделить]
#AutoIt3Wrapper_icon="d:\install\Тестирование\ico.ico"
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Compile_both=y;Компилировать оба варианта X86 и X64 за раз. По умолчанию n
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>

Opt("TrayIconHide", 1)
Global Const $sPASSWORD = 11115 ; Пароль для сравнения

_InputPasswordBox()
If @error Then Exit

$Pach_Archive_file=@ScriptDir & "\maintest4.7z"
$Pach_Archive=@ScriptDir & "\7zG.exe"
$Pach_Test_EXE=@ScriptDir & "\maintest4.exe"


;Проверка наличия архиватора-------------------------------------------------------------------------------------------------------
If Not FileExists($Pach_Archive) Then
    MsgBox (1, "Тестирование", "Ошибка. Файл архиватора '" & $Pach_Archive & "' отсутствует.",6)
    Exit
EndIf
;-------------------------------------------------------------------------------------------------------Проверка наличия архиватора
;Проверка наличия архива-----------------------------------------------------------------------------------------------------------
If Not FileExists($Pach_Archive_file) Then
    MsgBox (1, "Тестирование", "Ошибка. Файл архива '" & $Pach_Archive_file & "' отсутствует.",6)
    Exit
EndIf
;-----------------------------------------------------------------------------------------------------------Проверка наличия архива
RunWait($Pach_Archive & " x -y -p1111+ -aoa -o" & Chr(34) & @ScriptDir & Chr(34) & " " & Chr(34) & $Pach_Archive_file & Chr(34),@ScriptDir,@SW_HIDE);Получается пароль на архив 1111+
If (not @error = 0) Or (not FileExists($Pach_Test_EXE)) Then
    MsgBox (1, "Тестирование", "Ошибка разархивации. Файл теста: '" & $Pach_Test_EXE & "' отсутствует.",6)
    Exit
EndIf
RunWait($Pach_Test_EXE)
FileSetAttrib($Pach_Test_EXE, "-RASHT")
FileDelete ($Pach_Test_EXE)
If FileExists($Pach_Test_EXE) Then
    MsgBox (1, "Тестирование", "Ошибка удаления.",6)
EndIf

Exit

Func _InputPasswordBox()
    $hPass_GUI = GUICreate("Ввод пароля", 310, 144, 488, 351)

    $nPass_Input = GUICtrlCreateInput("", 16, 32, 281, 21)
    _GUICtrlEdit_TogglePassChars($hPass_GUI, $nPass_Input, -1, "•")
    GUICtrlSetLimit(-1, 25)

    $nOk_Button = GUICtrlCreateButton("&Ok", 224, 112, 75, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetTip(-1, "Проверить")

    GUICtrlCreateGroup(" Введите пароль ", 8, 8, 297, 97)
    $nShowPass_Chckbx = GUICtrlCreateCheckbox("Отображать вводимые символы", 16, 72, 193, 17)

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Return SetError(1)
            Case $nOk_Button
                If GUICtrlRead($nPass_Input) <> $sPASSWORD Then
                    MsgBox(48, "", "Не верный пароль", 0, $hPass_GUI)
                    GUICtrlSetData ($nPass_Input,"")
                    GUICtrlSetState ($nPass_Input,$GUI_FOCUS)
                Else
                    ;MsgBox(64, "", "Верный пароль", 0, $hPass_GUI)
                    GUIDelete($hPass_GUI)
                    Return SetError(0)
                EndIf
            Case $nShowPass_Chckbx
                _GUICtrlEdit_TogglePassChars($hPass_GUI, $nPass_Input, -1, "•")
        EndSwitch
    WEnd
EndFunc

Func _GUICtrlEdit_TogglePassChars($hWnd, $hCtrl, $iToggleState = -1, $sPassChar = "*")
    If Not IsHWnd($hWnd) Then $hWnd = WinGetHandle($hWnd)
    If Not IsHWnd($hCtrl) Then $hCtrl = ControlGetHandle($hWnd, "", $hCtrl)

    Local Const $EM_SETPASSWORDCHAR = 0xCC
    Local Const $EM_GETPASSWORDCHAR = 0xD2

    Local $iPass_Char = 0
    Local $aRet = DllCall("user32.dll", "long", "SendMessage", "hwnd", $hCtrl, "int", $EM_GETPASSWORDCHAR, "int", 0, "int", 0)

    If IsArray($aRet) And Not $aRet[0] Then $iPass_Char = Asc($sPassChar)

    If $iToggleState = 0 Then $iPass_Char = 0

    DllCall("user32.dll", "long", "SendMessage", "hwnd", $hCtrl, "int", $EM_SETPASSWORDCHAR, "int", $iPass_Char, "int", 0)
    ControlFocus($hWnd, "", $hCtrl)
EndFunc
 


Русское сообщество AutoIt

[Криптография] Установить пароль на запуск EXE
« Отправлен: Ноябрь 10, 2017, 11:24:50 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2756
  • Репутация: 464
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Какой смысл в пароле на программу?
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1419
  • Репутация: 177
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Не легче ли просто без всяких GUI сразу упаковать нужные файлы в архив? И распространять уже сам архив или SFX?

А для чего -- может просто "поиграться", (получится ли так сделать, может некое подобие лицензионного ключа, может чтобы не все (обычные юзеры) могли пользоваться этой прогой...

Оффлайн Igorekpak [?]

  • FrancisRahVX
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Мужской
    • Не могу сейчас поучаствовать в обсуждении - очень занят. Вернусь - обязательно выскажу своё мнение по этому вопросу.
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Криптография] Установить пароль на запуск EXE
« Ответ #3, Отправлен: Сентябрь 01, 2018, 03:34:58 »
Всё ещё ржу!
ссылка:http://happykiddi.com.ua/Detskie-ploshhadki [nonactive]

Русское сообщество AutoIt

Re: [Криптография] Установить пароль на запуск EXE
« Ответ #3 Отправлен: Сентябрь 01, 2018, 03:34:58 »

Оффлайн Bogidncat [?]

  • FrancisRahVX
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Мужской
    • Замечательно, это забавная информация
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Криптография] Установить пароль на запуск EXE
« Ответ #4, Отправлен: Сентябрь 01, 2018, 04:39:04 »
Я извиняюсь, но, по-моему, Вы ошибаетесь. Могу отстоять свою позицию. Пишите мне в PM, пообщаемся.
ссылка:http://www.sportbiz.com.ua/Trenazhery-Bubnovskogo [nonactive]

Русское сообщество AutoIt

Re: [Криптография] Установить пароль на запуск EXE
« Ответ #4 Отправлен: Сентябрь 01, 2018, 04:39:04 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
39 Ответов
15702 Просмотров
Последний ответ Июль 27, 2012, 15:19:43
от ZlojBoter
5 Ответов
3639 Просмотров
Последний ответ Февраль 13, 2011, 17:13:00
от `p r o x y
5 Ответов
6409 Просмотров
Последний ответ Май 30, 2011, 20:08:37
от SECTOR
14 Ответов
8505 Просмотров
Последний ответ Ноябрь 14, 2014, 10:07:17
от AZJIO
6 Ответов
1900 Просмотров
Последний ответ Ноябрь 22, 2014, 22:19:46
от WinDos32
5 Ответов
2836 Просмотров
Последний ответ Июнь 09, 2015, 20:52:59
от dimkot
0 Ответов
1439 Просмотров
Последний ответ Июль 14, 2015, 11:12:18
от Vovsla
0 Ответов
1176 Просмотров
Последний ответ Октябрь 14, 2015, 02:19:30
от mitiya
4 Ответов
1385 Просмотров
Последний ответ Декабрь 02, 2015, 16:07:10
от Sln
5 Ответов
2332 Просмотров
Последний ответ Март 29, 2016, 01:00:11
от Alofa