1 (изменено: Clannad5, 2022-07-30 19:01:14)

Тема: AHK: Слияние компилятора с AHK скриптом

Здравствуйте!

Есть ли какая-нибудь возможность сделать так, чтобы файл Autohotkey.exe слить вместе с компилированным файлом, чтобы по итогу это был один файл, который бы выполнял строчки кода, которые я написал и чтобы он мог иметь все свойства файла Autohotkey'я?

Распишу более подробно:

1. Скачиваем Инсталлятор Autohotkey и устанавливаем. Он имеет стандартный путь: "C:\Program Files\AutoHotkey\AutoHotkey.exe".
С помощью этого EXE'шника мы можем компилировать любой скрипт, который напишем по синтаксису AHK.
2. Пишем скрипт:

F11::
Msgbox, hello
return

3. Компилируем AHK скрипт в .exe формат.
4. Делаем некое *магическое* слияние скрипта(*.exe) с компилятором AutoHotkey.exe и получаем один файл SCRIPT.exe.

Итог:
При запуске скрипта, у нас должен запускаться только часть кода скрипта, но если мы пропишем в SCRIPT.exe строчку кода:

Run, SCRIPT.exe NewScript.ahk

то у нас должен запуститься файл NewScript.ahk под оболочкой SCRIPT.exe.

В общем суть:
Нужно иметь один файл Script.exe, который бы содержал в себе как исполняемый файл Autohotkey.exe так и сам скрипт, который бы принимал внутри скрипта команду RUN и другие действия.

Возможно ли такое без использования FileInstall, либо как-нибудь держать его в FileInstall, но чтобы он оттуда не вылезал в жесткий диск, а лежал максимум внутри оперативной памяти своей оболочки?

2

Re: AHK: Слияние компилятора с AHK скриптом

Последняя версия AHK вроде реализует возможность запуска скрипта другим скомпилированным файлом, смотрите описание.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Слияние компилятора с AHK скриптом

teadrinker
Простите, а последняя версия это AHK v2 BETA?

4

Re: AHK: Слияние компилятора с AHK скриптом

Нет, v1.1.34.03.

Added the capability to use AutoHotkey.exe as the base for compiled scripts, allowing compiled scripts to execute external files when passed the /script command-line switch.

Это ещё в 1.1.34.00.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Слияние компилятора с AHK скриптом

teadrinker
Нужно будет посмотреть, спасибо.
А еще кое-что хотелось бы узнать.
Есть аналог компилятора AHK Protector, надеюсь слышали.
Так вот, он имеет возможность в dll компилировать файл.

Есть ли возможность запускать эти dll для выполнений тех же задач, что и переменный код, который бы можно было считывать с текстовика?

6

Re: AHK: Слияние компилятора с AHK скриптом

Clannad5 пишет:

Есть аналог компилятора AHK Protector, надеюсь слышали.

Слышал, но не работал с ним, ничего не могу сказать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: Clannad5, 2022-07-31 00:48:26)

Re: AHK: Слияние компилятора с AHK скриптом

teadrinker
Что-то пытаюсь найти по поводу версии "1.1.34.00", но ничего связанного со /Script не нахожу, буду пытаться дальше.

UPD вроде нашел:


[v1.1.34+]: When used with a compiled script based on an .exe file, this switch causes the program to ignore the main embedded script. This allows a compiled script .exe to execute external script files or embedded scripts other than the main one. Other switches not normally supported by compiled scripts can be used but must be listed to the right of this switch. For example:

CompiledScript.exe /script /ErrorStdOut MyScript.ahk "Script's arg 1"
If the current executable file does not have an embedded script, this switch is permitted but has no effect.

This switch is not supported by compiled scripts which are based on a .bin file.

See also: Base Executable File (Ahk2Exe)

UPD все равно не понимаю как это работает.
При вводе примера сверху - выдаёт ошибку.

8 (изменено: Clannad5, 2022-07-31 02:45:59)

Re: AHK: Слияние компилятора с AHK скриптом

Всё еще ищу решение данной проблемы, если кто может помочь, то пожалуйста помогите!

9

Re: AHK: Слияние компилятора с AHK скриптом

Создаём скрипт:

SetWorkingDir, %A_ScriptDir%
MsgBox, Это главный скрипт
Run %A_ScriptFullPath% /script child.ahk

Компилируем его с помощью меню Compile Script (GUI). В открывшемся окне выбираем базовый файл, который не заканчивается на bin, например v1.1.34.03 U64 AutoHotkeyU64.exe. Создаём дочерний скрипт в той же папке child.ahk:

MsgBox, Это дочерний скрипт

Запускаем скомпилированный скрипт. Должен запуститься сначала главный скрипт, потом дочерний.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Слияние компилятора с AHK скриптом

teadrinker
Спасибо!
Без вас бы вряд ли разобрался.

11

Re: AHK: Слияние компилятора с AHK скриптом

А смысл? Ахк может задекомпилить любой Петя из 5 В.

12 (изменено: Clannad5, 2022-08-01 14:32:48)

Re: AHK: Слияние компилятора с AHK скриптом

Madmer

Есть приложение для декомпиляции Ahk Protector'a?
Ссылка?Источник?Любая информация по этому поводу?

Сможете расшифровать мой скрипт по этой схеме?:


;You can compile and set icons by using Ahk2Exe.exe

;If AutoHotkey.exe wants to change its name to abc.exe, Please modify Ahk=%A_ScriptDir%\abc.exe

 #NoEnv
 #NoTrayIcon
 #SingleInstance off
 SetBatchLines, -1
 if A_IsCompiled
 {
   Ahk=%A_ScriptDir%\AutoHotkey.exe
   FileInstall, AutoHotkey.exe, %Ahk%
 }
 else Ahk=

s=
s.="u3615544364u640425871u1678942631u2998343137u1434168171u24144"
s.="22854u772521359u1756970362u3066806505u2948737519u2564818243u"
s.="2449174105u2470363807u2046098044u1176484537u753332805u144264"
s.="7071u3603934027u1704982060u1720653216u1717746215u2145304324u"
s.="2022014845u2450424837u1702705391u2083667246u1068506747u35912"
s.="17833u3567719997u4162667514u2129365389u2723952462u1525863173"
s.="u2222899184u1692923901u242574513u216693403u2963745829u718981"
s.="056u1324710236u2397062842u3985251485u1924680786u3511329402u2"
s.="765269931u2804855524u2674235380u559259332u3905445868u4121789"
s.="599u2285549183u2494847797u874810689u795732698u472106884u3975"
s.="83621u2678606513u3136499948u3997704009u161416582u747610977u2"
s.="88358265u188618026u4014534859u3796439682u1110548997u66311011"
s.="4u2270712076u1696076242u1382773540u3487575563u3174960995u130"
s.="2045773u602562885u1791502172u3241600183u1207147742u346363523"
s.="0u3186766107u1142420846u1009666957u198000602u428649069u17667"
s.="60136u3390089281u535903475u436317139u4026351642u4068193294u3"
s.="267729071u1630205007u2979649261u4232722617u1123717274u278387"
s.="8208u1812034631u862579282u1011910245u3600252882u1609112547u1"
s.="101394236u1965178868u3677614267u240598878u2525420086u1595062"
s.="285u2518980276u3736630425u2506266157u764003753u1299449414u38"
s.="52875241u1794952988u3898121535u2392805954u2350784593u2792426"
s.="391u1744270517u30419991u1136596227u408909267u728149600u20841"
s.="83426u2400998859u4240037256u981776391u38117303u1081278912u34"
s.="52688954u77802657u3095605702u1868956753u1731106827u365244077"
s.="0u2264141526u4184885599u3276924816u3685867724u1991023020u239"
s.="2232640u4201584499u3541082063u2926974970u2266570825u43053333"
s.="5u331963475u821374591u2875498530u305018594u2997342869u184010"
s.="899u733340682u1097338808u4096342061u344693412u1195950882u408"
s.="0138981u1688909159u2340593351u2100746564u3931464179u19601379"
s.="32u4073936935u4251077432u4042229591u1086876548u3500902716u26"
s.="97653630u1076383049u1074895766u3488231572u1344405233u3398082"
s.="629u1388949613u3947357476u4092949742u2992316084u2008923535u2"
s.="169519803u3328859573u3614419466u2931365463u3125838056u295267"
s.="610u2901999989u3534058461u1627909026u2262130187u2257430578u3"
s.="536603377u3114113610u100252352u1944387908u3852812072u1776317"
s.="74u4236390291u1143291528u177031840u4284211020u1170893656u387"
s.="8521616u2095949919u3099089818u1309440318u3578245551u15953896"
s.="23u1881206342u4193841994u2702666366u549454016u3664020108u151"
s.="7427063u4093142272u3694002289u1235703057u835645461u334291221"
s.="5u545235360u745574558u86075238u329833843u2228859431u28253925"
s.="50u428500563u81377559u54930262u2816278535u645034616u22259788"
s.="73u877997922u1752469965u405996387u3716751611u3336718098u3947"
s.="666161u3569172750u2020821742u3184390954u4253135794u113192852"
s.="7u2389790164u2812110344u1368128187u3940192987u3448399953u102"
s.="9558322u1274758517u997043498u3312446598u3850928480u117532518"
s.="0u3869515356u4277967424u236564922u3969221838u4231207882u3816"
s.="982756u1106434464u2520908350u4104278725u2276099323u308975064"
s.="9u4124712992u2791601499u1860537930u3050092495u3666898420u271"
s.="4048375u887680006u565224823u1649816895u1329131102u471320963u"
s.="833203534u1513760393u1871841973u3878171571u3835446831u332354"
s.="032u296707096u3216041582u154325801u924702447u2153137039u1776"
s.="92556u488146630u2871030808u3180895080u2109010067u1927416287u"
s.="145782876u2113606017u3373208635u3425471270u1835502207u188789"
s.="5930u3892335673u2175089327u13554931u2590227321u3283621167u15"
s.="92659406u1857450587u2312104660u2724322670u2567083657u6338004"
s.="10u2626699304u2452932291u3821871599u3674733096u2899531036u34"
s.="77682227u2584663766u815364049u2069304982u2868030697u38020348"
s.="15u1838178211u625845450u1668706351u2047638539u426304105u8072"
s.="35077u1589111643u27361823u4111552656u2553734992u1971909090u3"
s.="720712061u1941000186u1541205376u2817803867u74771486u28795482"
s.="90u2278101325u1776814399u2972213696u3366918889u2412147701u62"
s.="8204019u2597266383u646594158u471121955u2862375311u1075170464"
s.="u3235572933u3597359065u1466794510u3626251175u972441319u31250"
s.="49413u3305965548u2728816747u2371043397u1792747774u3966012085"
s.="u3278372566u1516598054u2970543965u2108614587u2012673536u8948"
s.="85685u2945281437u3291447177u3494707370u1346478287u3700400616"
s.="u1761168575u700665654u2572313318u1510303080u794117407u173130"
s.="0277u1827282593u2760598794u1063314248u1175680104u1124152889u"
s.="3393013446u1656446721u3886746426u3862964789u1801606648u40019"
s.="70076u331392662u3591410244u2072281413u410481081u888783327u25"
s.="34699350u3014639971u4242027781u328085228u1196720645u15746651"
s.="99u1851539689u2312768205u4176024189u2488163407u4282984571u38"
s.="2279273u1413406431u1806521640u715567204u844765620u2098305848"
s.="u80708636u3483745573u1211469321u316756761u192750608u34041211"
s.="98u4061444179u2975664460u3638656331u1114373957u3865894614u13"
s.="96431039u4151687187u4274626795u4057107093u2556316560u2336830"
s.="793u3800357593u1218541952u2071279914u1632983001u55380477u905"
s.="300814u2604810123u1307640042u840965133u2472087471u2085130015"
s.="u3714155185u2984731539u1637879158u2755081031u1408294202u2475"
s.="90609u2152978909u2099266594u1824993072u303215537u3061578197u"
s.="2500028133u3210783971u3038829804u3646348035u1418236567u41417"
s.="14574u2783254531u2930383759u1180042201u1225589111u1850399360"
s.="u3743781989u2255586353u4181541430u2061097753u2934079875u3197"
s.="479138u4070395717u1709549529u2231656679u2100359958u509423176"
s.="u875519628u2760484678u308766619u47591474u3148773485u30164315"
s.="17u1932429574u3948554342u2270111478u2562561326u1718533175u41"
s.="55386440u3519075971u2792543598u3695689893u2967814014u4066793"
s.="339u766848581u1075057773u2070866773u2178559615u3428631816u13"
s.="71857738u2621930013u2086384735u2624187932"

 Exec(s, Ahk)
 ExitApp

Exec(str, Ahk="", arg="") {
  static MyFunc, base, ScriptName:=%True%
  s:=RegExReplace(str,"\s"), StrReplace(s,"u","",size)
  VarSetCapacity(str,(size+1)*4,0), s:=SubStr(s,InStr(s,"u")+1)
  Loop, Parse, s, u
    NumPut(A_LoopField, str, (A_Index-1)*4, "uint")
  ;-----------------------------
  Ahk:=Ahk ? Ahk : A_IsCompiled
    ? A_ScriptDir "\AutoHotkey.exe" : A_AhkPath
  IfNotExist, %Ahk%
  {
    MsgBox, 4096, Error!, `n`nCan't Find: %Ahk% !`n`n
    return, 0
  }
  if !MyFunc
  {
    x32:="5557565381EC4C0100008B9C24680100008BBC246C01000"
    . "08BAC24700100008B433C01D88038500F85380500008078014"
    . "50F852E0500008B706085F60F84FF04000031C9837864010F9"
    . "2C119D283E210894C245083C2788B341001DE8B4E188974243"
    . "C8B562085C90F84E504000031C08D3413EB0B83C00139C10F8"
    . "4D30400008B1486813C134765745075E9817C1304726F63417"
    . "5DF8B74243C8D04430346240FB7008D048303461C8B3085F60"
    . "F84A0040000B86500000001DE891C2466894424688D442460C"
    . "744246057726974C74424646546696C89442404FFD683EC088"
    . "944243C8D442475891C24C7442475476C6F62C7442479616C4"
    . "16CC744247D6C6F630089442404FFD683EC08BA65650000894"
    . "424548D44246A6689542472891C24C744246A476C6F62C7442"
    . "46E616C4672C64424740089442404FFD683EC08B9734100008"
    . "94424488D84248D00000066898C2499000000891C24C784248"
    . "D00000043726561C784249100000074655072C784249500000"
    . "06F636573C684249B0000000089442404FFD683EC088944245"
    . "C8D8424BE000000891C24C78424BE00000043726561C78424C"
    . "200000074654E61C78424C60000006D656450C78424CA00000"
    . "069706541C68424CE0000000089442404FFD683EC088944245"
    . "88D8424CF000000891C24C78424CF000000436F6E6EC78424D"
    . "30000006563744EC78424D7000000616D6564C78424DB00000"
    . "050697065C68424DF0000000089442404FFD683EC088944244"
    . "08D842481000000891C24C7842481000000436C6F73C784248"
    . "50000006548616EC7842489000000646C650089442404FFD68"
    . "3EC088D5C24608944244CC744241000000000C744240800000"
    . "000897C2404895C240CC7042400000000FF54243C83EC14807"
    . "C2460000F85E50200008D34AD04000000C7042400000000897"
    . "4244489742404FF54245483EC0885C089C30F841703000031C"
    . "085ED7415908B148789148383C00139C575F38B44244483E80"
    . "4C7040300000000C784249C0000000B000000BA0B000000C78"
    . "424A00000000D000000C78424A40000001100000031C0C7842"
    . "4A800000013000000EB0C89C283E2038B94949C00000069D28"
    . "300000089C183E10301C283C00183F86489948C9C00000075D"
    . "831D285ED742D669089D183E10369848C9C000000830000000"
    . "1D089848C9C000000330493D1C083C00189049383C20139D57"
    . "5D58B8424640100008B742458C744241C00000000C74424180"
    . "0000000C744241400000000C744241000000000C744240CFF0"
    . "00000C744240800000000C744240402000000890424FFD683E"
    . "C2089C78B842464010000C744241C00000000C744241800000"
    . "000C744241400000000C744241000000000C744240CFF00000"
    . "0C744240800000000C744240402000000890424FFD683EC208"
    . "3FFFF89C60F849D01000083F8FF0F84940100008D8C24E0000"
    . "0008D94244001000089C8C7000000000083C00439C275F3837"
    . "C245001894C2420C744241C00000000C744241800000000C74"
    . "4241400000000C744241000000000C744240C00000000C7442"
    . "4080000000019C0C704240000000083E0E483C060898424E00"
    . "000008D8424AC000000894424248B84246001000089442404F"
    . "F54245C83EC2885C00F84DA0000008B6C244C8B8424AC00000"
    . "089042489E8FFD083EC048B8424B000000089042489E8FFD08"
    . "3EC04893C24C744240400000000FF54244083EC0889E8893C2"
    . "4FFD083EC04893424C744240400000000FF54244083EC088D4"
    . "42460895C2404893424C7442410000000008944240C8B44244"
    . "489442408FF54243C83EC1489E8893424FFD083EC04891C24F"
    . "F54244883EC0431C081C44C0100005B5E5F5DC21400C744245"
    . "001000000BA88000000E904FBFFFFB8FEFFFFFF81C44C01000"
    . "05B5E5F5DC2140081C44C010000B8FFFFFFFF5B5E5F5DC2140"
    . "0B8FDFFFFFFEBDA893C248B7C244C89F8FFD083EC0489F8893"
    . "424FFD083EC04891C24FF542448B8FAFFFFFF83EC04EBB1893"
    . "C248B7C244C89F8FFD083EC0489F8893424FFD083EC04891C2"
    . "4FF542448B8FBFFFFFF83EC04EB88B8FCFFFFFFEB8190"
    x64:="4157415641554154555756534881EC98010000B8FFFFFFF"
    . "F8BB4240002000048899424E8010000418B503C4D89C748898"
    . "C24E00100004D89CC4C01C2803A500F858C040000807A01450"
    . "F8582040000448B42604585C00F8489040000837A64014819C"
    . "031FF83E0104883C078837A6401400F92C7897C245C448B0C0"
    . "2B8FEFFFFFF4D01F9418B4918418B512085C90F843D0400003"
    . "1C04D8D0417EB100F1F40004883C00139C10F864B040000418"
    . "B148041813C174765745075E641817C1704726F634175DB418"
    . "B5124498D04470FB71410418B411C498D14978B3C0285FF0F8"
    . "41304000048B8577269746546696C488D6C24704C01FF48894"
    . "42470B8650000004C89F94889EA6689442478FFD74989C548B"
    . "8476C6F62616C416C488D9424900000004C89F948898424900"
    . "00000C78424980000006C6F6300FFD7BA656500004889C348B"
    . "8476C6F62616C467266899424880000004C89F9488D9424800"
    . "000004889842480000000C684248A00000000FFD7B97341000"
    . "0488944245048B8437265617465507266898C24BC000000488"
    . "D9424B00000004C89F948898424B0000000C78424B80000006"
    . "F636573C68424BE00000000FFD7488944246048B8437265617"
    . "4654E61488D9424D000000048898424D000000048B86D65645"
    . "0697065414C89F948898424D8000000C68424E000000000FFD"
    . "74989C648B8436F6E6E6563744E488D9424F00000004889842"
    . "4F000000048B8616D6564506970654C89F948898424F800000"
    . "0C684240001000000FFD7488944246848B8436C6F736548616"
    . "E488D9424A00000004C89F948898424A0000000C78424A8000"
    . "000646C6500FFD74531C031C94889C748C7442420000000004"
    . "989E94C89E241FFD5807C247000B8FDFFFFFF0F85490200008"
    . "D14B50400000031C94989D7FFD34885C04889C30F849202000"
    . "031C085F6741D0F1F840000000000418B14848914834883C00"
    . "139C677F189F048C1E002C7040300000000C78424C00000000"
    . "B000000BA0B000000C78424C40000000D000000C78424C8000"
    . "0001100000031C0C78424CC00000013000000EB0C89C283E20"
    . "38B9494C000000069D28300000089C183E10301C283C00183F"
    . "86489948CC000000075D831D285F6742E904889D183E103698"
    . "48CC00000008300000001D089848CC0000000330493D1C083C"
    . "0018904934883C20139D677D34531C041B9FF000000BA02000"
    . "000488B8C24E801000048C744243800000000C744243000000"
    . "000C744242800000000C74424200000000041FFD64889C6453"
    . "1C048C744243800000000C744243000000000C744242800000"
    . "00041B9FF000000C744242000000000BA02000000488B8C24E"
    . "801000041FFD64883FEFF4989C40F84380100004883F8FF0F8"
    . "42E010000488D8C2430010000488D9424900100004889C8669"
    . "0C700000000004883C0044839C275F1837C245C0148894C244"
    . "048C74424380000000048C744243000000000C744242800000"
    . "000C744242000000000488B9424E001000019C04531C94531C"
    . "083E0E431C983C06089842430010000488D842410010000488"
    . "9442448488B442460FFD085C00F8488000000488B8C2410010"
    . "000FFD7488B8C2418010000FFD74C8B74246831D24889F14C8"
    . "9F0FFD04889F1FFD731D24C89E14C89F0FFD04989E94589F84"
    . "889DA4C89E148C74424200000000041FFD54C89E1FFD74889D"
    . "9488B442450FFD031C04881C4980100005B5E5F5D415C415D4"
    . "15E415FC3B888000000C744245C01000000E981FBFFFFB8FEF"
    . "FFFFFEBD34889F1FFD74C89E1FFD74889D9488B442450FFD0B"
    . "8FAFFFFFFEBB84889F1FFD74C89E1FFD74889D9488B442450F"
    . "FD0B8FBFFFFFFEB9DB8FCFFFFFFEB969090909090"
    hex:=A_PtrSize=8 ? x64:x32
    VarSetCapacity(MyFunc, len:=StrLen(hex)//2)
    Loop, % len
      NumPut("0x" SubStr(hex,2*A_Index-1,2),MyFunc,A_Index-1,"uchar")
    DllCall("VirtualProtect","ptr",&MyFunc,"ptr",len,"uint",0x40,"ptr*",0)
    base:=DllCall("GetModuleHandle", "Str","Kernel32", "ptr")
    ScriptName:=ScriptName ? ScriptName : A_ScriptFullPath
  }
  ; Random, n, 1, 1000000
  pipe_name:="\\.\pipe\" . A_ScriptName
  ; n
  cmdline="%Ahk%" "%pipe_name%" "%ScriptName%" %arg%
  DllCall(&MyFunc, "AStr",cmdline, "AStr",pipe_name
  , "ptr",base, "ptr",&str, "uint",size)
  return, 1
}

13

Re: AHK: Слияние компилятора с AHK скриптом

Есть штучки для декомпиляции вашего всеми любимого протектора. Это ведь глупо отрицать.

Win10: LTSC (v1809); AHK: ANSI (v1.1.34.03)

14 (изменено: Clannad5, 2022-08-01 22:41:47)

Re: AHK: Слияние компилятора с AHK скриптом

Phoenixxx_Czar
Такая штучка есть, но она не в общем доступе и поэтому лучше иметь хоть какую-то защиту, чем ничего.
К тому же речь шла совсем о другом и я уже решил свою проблему.

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

15

Re: AHK: Слияние компилятора с AHK скриптом

Clannad5 пишет:

Есть приложение для декомпиляции Ahk Protector'a?
Ссылка?Источник?Любая информация по этому поводу?
Сможете расшифровать мой скрипт по этой схеме?:

Если не жалко 1000 рублей, то можете попробовать предложить этому исполнителю:
https://kwork.ru/software/1637992/napis … -revers-po

16

Re: AHK: Слияние компилятора с AHK скриптом

Предполагаю, там 1000/час.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK: Слияние компилятора с AHK скриптом

Нет.

Объем услуги в кворке: 500 киллобайт кода

18

Re: AHK: Слияние компилятора с AHK скриптом

Ха-ха! Странный способ указать объём работы. 500 Кб — это больше 10000 строк. Если писать с нуля, это неделя работы, как минимум. Если это код уже ранее написанных библиотек, то там хоть 500 MB может быть, заказчик всё равно не поймёт, что там нужно, а что нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19 (изменено: Clannad5, 2022-08-04 04:50:31)

Re: AHK: Слияние компилятора с AHK скриптом

Malcev
А смысл мне предлагать?
За деньги можно любую защиту взломать.

Вопрос лишь в цене и времени потраченное на это.
К примеру какой будет смысл взламывать скрипт, который продавец продаёт за 200рублей, а взлом будет стоить 5 тысяч рублей - конечно же смысла не будет.

Если целью будет распространить для всех, то..
с таким же успехом можно за 1000рублей заказать аналог скрипта, который будет работать точно так же, а может даже лучше.

Поэтому делать свои ЛЁГКИЕ наработки, с очень дорогой защитой - не имеет смысла.
Достаточно простой защиты, которую обычные юзеры не обойдут, а опытным смысла от этого не будет.

20 (изменено: Madmer, 2022-08-04 10:56:40)

Re: AHK: Слияние компилятора с AHK скриптом

Clannad5, с вашим заморачиванием по защите одного из самых не защищённых языков проще уж на плюсах аналог компилятора сделать и прогонять скрипты через него). Вот тогда не взломают уж точно.

21

Re: AHK: Слияние компилятора с AHK скриптом

Madmer
Предлагаете мне писать с нуля свой интерпретатор?
Я уже понял, что нужно AHK_H юзать, AHK_L слабое решение.