1 (изменено: baplo, 2018-06-15 15:09:42)

Тема: AHK: Переменная - как команда

Здравствуйте!
Интересует такой вопрос:

Возможно ли сделать команду в виде переменной?
Пример:


Var = Msgbox

Var , привет

Значение Var - используется как команда Msgbox.

Возможно что то похожее в AHK?

Просто я обфускацировал код, но обфускацируются только переменные, а не сами команды.

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

2

Re: AHK: Переменная - как команда

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

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

3

Re: AHK: Переменная - как команда

teadrinker пишет:

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

на одном форуме я нашел вот такую строчку кода:

#:="chr",#@:=(#_:=(##:=($:=(#$:=(_:=!"")<<_)<<_)<<_)<<_)<<#$,@:=#_<<_|#@,_#:=%#%(@|#$|_),__:=%#%(@|$|_),_@:=%#%(@|#_|#$|_),_$:=%#%(#@|_),@#:=%#%(@|_),@_:=%#%(@|##|$|#$|_),@@:=%#%(@|#_|$|_),@$:=%#%(@|#_|$),$#:=%#%(@|##|$|#$),$_:=%#%(@|#_|#$),$@:=%#%(@|##|#$|_),$$:=%#%(#@|##),###:=%#%(@|$),##_:=%#%(@|##|$),%###%%##_%%##_%%_#%%@#%%##_%%##_%(%#%(#@|##|$|_) __ _@ _@ @# %#%(@|$|#$|_) __ %#%(#@|#$) @_ %#%(@|#_|##),%#%(#@|@|##|_) $# @$,!_,_@ @$ $_,%#%(#@|##|#$) @@ _@ @$ " " _$ $# @_ @$ %#%(@|##) __ $_ " " _$ @@ @$ @_ $$ @_ @$ $@ __ %#%(@|#_|##|_) " " $$ @# _# $@ __ $_,_@ @$ $_,"",%#%(#@|@|##|_) $# @$,!_)

Если вставить этот код в строчку Ahk и запустить, то запуститься Msgbox с текстом.
Такой вариант тоже не годится для сокрытие команд?
И вообще, возможно вот таким способом весь скрипт написать?Или такой метод легко расшифровывается?

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

4

Re: AHK: Переменная - как команда

В этом примере для вызова окна сообщения используется не команда MsgBox, а её аналог, вызываемый через DllCall. То-есть по сути происходит следующее:

DllCall("MessageBox", Ptr, 0, Str, "Привет", Str, "", UInt, 0)

var1 := "Dll", var2 := "Call", var3 := "Message", var4 := "Box"
var5 := "P", var6 := "tr", var7 := "S", var8 := "Привет", var9 := "UInt"

%var1%%var2%(var3 var4, var5 var6, 0, var7 var6, var8, var7 var6, "", var9, 0)

С командой MsgBox такой номер не пройдёт, а вот функции с параметрами подобным образом обфусцировать можно. Насколько легко расшифровать — не могу сказать, не было практики.

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

5 (изменено: baplo, 2018-06-15 16:22:50)

Re: AHK: Переменная - как команда

teadrinker пишет:

DllCall("MessageBox", Ptr, 0, Str, "Привет", Str, "", UInt, 0)

вот функция DllCall хорошо зашифровывается:

%#kkfff%%f@@ffff@fkff#fkk%%ff@kkf%%@ff#f#fk%%@kfkff%%ffk@k#kk#kfkk@%("MessageBox", Ptr, 0, Str, "Привет", Str, "", UInt, 0)

Хотя опять же, ее параметры выдают ее свойства.

UPD:

Как я понял, можно слово "message" записать в переменную, тогда будет надежнее код:

%fk@ff#@f@kf#%%k##fkkfk%%@f#f%%@f#f%%f#ffkk%%f@#fk@k@@kfkk@@k%(#%ffk#f@fkkfkk#f@k#f%f@%fkf#@f#k%ff%kkf@ffkkk#k#k@@f%@k@f#, Ptr, 0, Str, "Привет", Str, "", UInt, 0)
Люблю когда мне понижают репутацию (мне правда все равно)