1

Тема: AHK: Создание приватного макроса с помощью интернет соединения

Здравствуйте!
Хотелось бы подробнее изучить тему о приватности макросов.
У меня есть идея сделать сборку установки макроса.
Чтобы в комплект входило несколько файлов:

Setup.exe
Установщик.Ahk
Компилятор.exe

Суть проста:
Вначале подавать эти файлы без расширения, кроме Setup.exe, то есть
Setup.exe
file1
file2

При скачивания трех файлов, человек вначале запускает Setup.exe

При запуске Setup.exe перемещаются файлы File1 и File2 в неизвестное человеку место.
Там они переименовываются в Установщик.Ahk и  в Компилятор.exe

Далее запускается Установщик.Ahk и начинает собирать информацию о железе.
Полученные данные он запишет в самого себя.
далее, Ahk файл запустит Компилятор.exe и скомпилирует файл Установщик.Ahk в, например, macrok.exe.
Далее, файл Setup.exe Установщик.Ahk и Компилятор.exe будут удалены с компьютера.

Останется только файл macrok.exe который сможет взаимодействовать только с компьютером владельца, чьи данные о железе прописаны.



Плюсы:

Не нужно заботиться об интернет активации

Минусы:

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



Вопрос:

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

Люблю когда мне понижают репутацию (мне правда все равно)

2

Re: AHK: Создание приватного макроса с помощью интернет соединения

А собственно-то в чём вопрос?
Сами же предложили схему, и я так полагаю её реализовали. Похвастаться?
А если по делу:
Зачем передавать три файла? Передавай один.

FileInstall, Source, Dest , Flag

Более подробно о ней можно почитать тут https://autohotkey.com/docs/commands/FileInstall.htm
Команда помещает указанные файлы "внутрь" скомпилированного файла. И не нужно ничего "скачивать", "перемещать" и т.д. Более того, используя флаги можно пометить файлы как системные, а значит добраться до них рядовому пользователю будет гораздо сложнее. Запихнул в Setup, потом достал и пометил. Никому кроме вас о ещё 2/5/10... файлах знать и не надо.

3 (изменено: baplo, 2018-06-12 17:17:13)

Re: AHK: Создание приватного макроса с помощью интернет соединения

Nox_The_Great пишет:

А собственно-то в чём вопрос?
Сами же предложили схему, и я так полагаю её реализовали. Похвастаться?
А если по делу:
Зачем передавать три файла? Передавай один.

FileInstall, Source, Dest , Flag

Более подробно о ней можно почитать тут https://autohotkey.com/docs/commands/FileInstall.htm
Команда помещает указанные файлы "внутрь" скомпилированного файла. И не нужно ничего "скачивать", "перемещать" и т.д. Более того, используя флаги можно пометить файлы как системные, а значит добраться до них рядовому пользователю будет гораздо сложнее. Запихнул в Setup, потом достал и пометил. Никому кроме вас о ещё 2/5/10... файлах знать и не надо.

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

И мне не совсем понятен Setup.
А именно:

Сам файл скомпилированный можно использовать как основу для старта?и его же потом же самодекомпилировать и снова скомпилировать?
Просто в таком случае можно сделать так:

Запускает рядовой пользователь файл.
Этот файл проверяет ключ винды у пользователя.
Этот же файл копирует сам себя в любое другое место.
Декомпилирует эту копию файла.
Записывает в него значение ключа.
И снова компилирует, удаляя прежний установщик и помещая туда новый.

Такое реализуемо с FileInstall?

Или файлы можно уже сразу помещать в скомпилированный и запущенный файл?Тогда и вторую копию не придется создавать?

Люблю когда мне понижают репутацию (мне правда все равно)

4 (изменено: Nox_The_Great, 2018-06-13 11:53:23)

Re: AHK: Создание приватного макроса с помощью интернет соединения

навеяло...

― В него можно класть... все что хочешь можно класть.
― Пожалуй, в него можно положить мой воздушный шарик?

И снова к делу...

Такое реализуемо с FileInstall?

FileInstall помещает в готовый .exe указанные файлы и потом их извлекает в указанное место, читайте справку.
Копирование же файлов (как и самого себя) осуществляется командой

FileCopy, SourcePattern, DestPattern , Flag


Определитесь, будете вы копировать один файл или архивировать/разархивировать два других. Опять же решите сами. Единственное на что я бы советовал обратить внимание, это то, что декомпиляция уже скомпилированного файла та ещё задача. Когда-то был Exe2Ahk но я не ручаюсь за его актуальность. Плюс ко всему: зачем декомпилировать - записывать - компилировать, если можно поместить заранее подготовленный к компиляции файл? Но, для компиляции нужен Ahk2Exe компилятор, идущий в комплекте с установочным файлом AHK, простой командой скрипта такой финт не делается. И здесь может возникнуть проблема. В принципе никто не запрещает поместить Ahk2Exe в готовый .exe и запускать его через командную строку с параметрами, или даже найти исходники компилятора и поместить код компилятора в скрипт, но этот вопрос явно требует уточнения (вами, не мной). Посмотрите, поищите, может кто-то уже реализовал подобное до вас.

Опять же прошу обратить внимание, что вопросы вроде "Какая у меня есть идея..." или "А можно ли, нельзя ли..." не приблизят вас к достижению цели. Начните реализовывать свою идею в каком бы то не было виде, и задавайте вопросы по реализации, вроде "Есть функция, возвращает ошибку, а должна копировать..." и т.д. Определитесь что вы хотите видеть, продумайте алгоритм, разработайте схему с учётом возможностей. О возможностях AHK можно узнать в справке, ссылку я уже давал. Есть перевод, здесь же на script-coding.com, но я вновь не ручаюсь за его актуальность. Глубокой проработкой идей занимаются умные люди за деньги, есть соответствующая ветка. А до тех пор всем этим занимаетесь вы.