Автор Тема: Добавление возможности распаковки исходного кода из вашего Exe  (Прочитано 3438 раз)

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

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Иногда есть желание распространять свою программу с исходным кодом, но не в открытом виде, а с возможностью распаковывать его из самого Exe.

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

Код: AutoIt [Выделить]
#include <String.au3>

$sCryptedPass = _StringEncrypt(1, 'qwerty', 'qwerty') ;qwerty это ваш пароль
ClipPut($sCryptedPass) ;После этого ваш зашифрованный ключ будет помещён в буфер обмена


Далее добавляем проверку в ваш скрипт:

Код: AutoIt [Выделить]
#Region --SRC_SIGN--

#include <String.au3>

If $CmdLine[0] > 0 And $CmdLine[1] = "/Source" Then
    $sPassKey = '9BA81FDF0B89502F8E2B599A' ;Это полученный в буфер обмена зашифрованный ключ
   
    $sPass = InputBox(@ScriptName & ' - Source Password', 'Enter password to get the source code:', '', '*')
    If @error Then Exit
   
    If _StringEncrypt(0, $sPassKey, $sPass) = $sPass Then
        $sSrcFile = StringTrimRight(@ScriptFullPath, 4) & "_src.au3"
       
        ;YourScriptName.au3 следует заменить на имя вашего скрипта
        $iRet = FileInstall("YourScriptName.au3", $sSrcFile) ;, 1) ;Раскоментируйте для перезаписи файла исходного кода
       
        If $iRet Then
            $sSrcRead = FileRead($sSrcFile)
            $sSrcRead = StringRegExpReplace($sSrcRead, '#(Region --SRC_SIGN--)((?s).*?)\r?\n#End\1(\r?\n)*', '')
           
            $hFile = FileOpen($sSrcFile, 2)
            FileWrite($hFile, $sSrcRead)
            FileClose($hFile)
           
            MsgBox(262144+64, @ScriptName & ' - Source', 'Source code saved as:' & @CRLF & $sSrcFile)
        Else
            MsgBox(262144+48, @ScriptName & ' - Source', 'Unable to save the Source code (already exists).')
        EndIf
    Else
        MsgBox(262144+48, @ScriptName & ' - Source', 'Wrong password.')
    EndIf
   
    Exit
EndIf

#EndRegion --SRC_SIGN--

;===== Далее тело вашего скрипта =====


Всё, теперь при запуске скомпилированного скрипта вам (точнее пользователю вашей программы) будет предложенно указать пароль для получения исходного кода, при верном пароле, будет распакован файл исходного кода с добавкой _src в имени оригинального файла (exe).

P.S
Конечно в “запароливаний” особого смысла нет, но это так, для наглядности :)


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
17 Ответов
7236 Просмотров
Последний ответ Январь 10, 2011, 00:24:01
от `p r o x y
8 Ответов
10341 Просмотров
Последний ответ Май 20, 2012, 19:40:33
от Afonichev
31 Ответов
16267 Просмотров
Последний ответ Май 13, 2011, 22:06:00
от Centrinar
0 Ответов
2188 Просмотров
Последний ответ Май 10, 2011, 01:08:51
от Kaster
2 Ответов
2416 Просмотров
Последний ответ Ноябрь 27, 2012, 13:22:09
от Fortuno
1 Ответов
3004 Просмотров
Последний ответ Июнь 07, 2013, 16:59:34
от Yuriy
10 Ответов
4256 Просмотров
Последний ответ Сентябрь 08, 2014, 21:22:12
от madmasles
5 Ответов
1814 Просмотров
Последний ответ Сентябрь 25, 2015, 23:10:20
от SealAlbinos
1 Ответов
1710 Просмотров
Последний ответ Ноябрь 08, 2015, 16:26:06
от firex
3 Ответов
1792 Просмотров
Последний ответ Сентябрь 03, 2016, 18:26:19
от Alofa