Меню сайта
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
Форум » Программирование » AHK Программирование » [Полезное] Обфускатор для AHK (Обфускатор AHK кода)
[Полезное] Обфускатор для AHK
Rinat_Namazov Дата: Понедельник, 12.02.2018, 18:31 | Сообщение # 1
Боец
Сообщений: 123
Статус: Offline
Вступление
Немногие знают что для AHK создан только один единственный обфускатор кода.
И как им пользоваться у всех остаются только одни вопросы, да еще в добавок он выложен на англоязычном форуме.
И сегодня вы научитесь им пользоваться.
Большинство AHK скриптов легко декомпилируются, так что обфускация может быть спугнет потенциального взло*щика в попытке разобраться в коде.
Хот и на маленьком примере кода кажется что можно разобраться, то в больших кодах будет надоедать.
Так для начала нам нужно скачать сам обфускатор, он кстати идет в виде исходника.
Ссылка: *ТыК*


Инструкция
1. Для удобства создадим папку на рабочем столе
2. В этой папке создаем 3 файла, например:
1) includemap.txt
2) transmap.txt
3) obfuscated.ahk
Можно использовать и другие названия.
3. В эту же папку переносим наш исходник и открыв его, в начало вставляем следующий текст:

Код

;$obfuscator: $dump_secfrags_forclasses: common
;$obfuscator: $dump_tmessfrags_forclasses: common
;$obfuscator: $globvarfrags_dumpall:
;$obfuscator: $losvarfrags_dumpall:
;$obfuscator: $paramfrags_dumpall:
;$obfuscator: $funcfrags_dumpclass: unclassed
;$obfuscator: $funcfrags_dumpclass: unsecclasses
;$obfuscator: $labelfrags_dumpclass: unclassed
;$obfuscator: $labelfrags_dumpclass: unsecclasses
;$obfuscator: $sysfuncfrags_dumpall:
;$obfuscator: $defglobvars:
;$obfuscator: $defsysfuncs:

В этой строчке можно указать переменные через запятую которые нужно обфусцировать. Например:
Код

;$obfuscator: $defglobvars: test, mynick, guitext1

В этой строчке можно указать системные команды через запятую которые нужно обфусцировать. Только работает это как-то странно. Например:
Код

;$obfuscator: $defsysfuncs: dllcall, strget, numput

После выполнения всего кода, вставляем следующий текст
Желательно перед началом функций и классов - в противном случае может быть что-то не работать

Код

;$obfuscator: $end_autoexecute:

Сохраняем наш исходник
4. Открываем файл includemap.txt и пишем туда полный путь до оригинального исходника.
5. Запускаем обфускатор в скаченном файле он находиться по следующему пути:
autohotkey-obfuscator-master > dynamicobfuscator-source-code > dynamicobfuscator.ahk

6. В меню обфускатора выбираем "create translations map".
В первом поле указываем путь к файлу "includemap.txt".
Во втором поле указываем путь к файлу "transmap.txt".
Жмем "create translations map", и далее жмем "ok".
7. В главном меню выбираем "obfuscate source code".
И в первых двух полях должен быть указать путь к файлам, которые указывались в "create translations map".
Можно указать и другой, если вы перенесли эти фалы.
В третьем поле указываем путь к файлу "obfuscated.ahk".
В этом же меню наверху есть 3 галочки.
И при установке первой галочке в коде удаляется все знаки табуляции(отступы), а также комментарии.
Код без знаков табуляции не особо удобно читать.
В двух других пока не разбирался, но можете сами поэкспериментировать на более мене длинных кодах, так как на маленьком кажется что просто меняются рандомные символы.
жмем "obfuscate program", далее жмем "ok" и еще раз "ok".
8. Теперь в файле "obfuscated.ahk" будет находиться обфусцированный код.
Пример обфусцированного кода: *ТыК*
bozhenka Дата: Вторник, 27.02.2018, 07:49 | Сообщение # 2
Новичок
Сообщений: 17
Статус: Offline
Помниться я как-то искал такой, но потом не разобрался, ибо куча всякой фигни там была. Но спасибо, что все нормально объяснил. Плюс с меня.
Joni228 Дата: Среда, 28.02.2018, 20:56 | Сообщение # 3
Бывалый
Сообщений: 318
Статус: Offline
Может способ и отличный.. но кроме я ничего не увидел...


Rinat_Namazov Дата: Среда, 28.02.2018, 23:48 | Сообщение # 4
Боец
Сообщений: 123
Статус: Offline
Цитата Joni228 ()
Может способ и отличный.. но кроме я ничего не увидел...

Че-то не то делаешь может, у меня еще была проблема что обфускатор крашило, спасло переустановка ahk.
Wyareri Дата: Четверг, 01.03.2018, 11:18 | Сообщение # 5
Боец
Сообщений: 56
Статус: Offline
Цитата Joni228 ()
я ничего не увидел...

По началу тоже такое было несколько раз, но потом как-то взяло и обфусцировалось.
И все последующие разы норм обфусцировалось.
Joni228 Дата: Понедельник, 05.03.2018, 22:10 | Сообщение # 6
Бывалый
Сообщений: 318
Статус: Offline
Цитата Rinat_Namazov ()
Че-то не то делаешь может, у меня еще была проблема что обфускатор крашило, спасло переустановка ahk.

Цитата Wyareri ()
По началу тоже такое было несколько раз, но потом как-то взяло и обфусцировалось.
И все последующие разы норм обфусцировалось.

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


Rinat_Namazov Дата: Понедельник, 05.03.2018, 22:16 | Сообщение # 7
Боец
Сообщений: 123
Статус: Offline
Цитата Joni228 ()
Скрипты которые я ставил на продажу я вообще проектил, было нормально.

Проектил? Протектор может?
Протектор не какого смысла не имеет, ведь вся проблема в движке, нужно его переделывать.

Цитата Joni228 ()
Правда муторно если для большего кода, да и косяки есть.

Если в функции повторяются переменные, если две и более одинаковые переменные используется тогда это конечно ломает весь код.
trenisk Дата: Пятница, 09.03.2018, 22:03 | Сообщение # 8
Любитель
Сообщений: 42
Статус: Offline
Ошибка
Был код до этой штуки:
Код
#MaxThreadsPerHotkey 3
:?c:/autoad::
:?c:.фгещфв::
autoad:
#MaxThreadsPerHotkey 1
AntiCrash()
ShowDialog("1", "Автоматическое обьявление", "Введите желаемое обьявления", "Выбрать")
while (isDialogOpen()) {
}
aadd:
if SmartLoop  
{
    SmartLoop := false  
    return
}
SmartLoop := true
Loop
{
Text := "{ffffff}Для остановки процесса нажмите F1"
addChatMessage(text)
sendchat("/ad " readString(hGTA, dwSAMP + 0x12D8F8, 256)" [pjr " getId() "]")
sleep 900
if not SmartLoop
        break
}
return

А стал
Код
#MaxThreadsPerHotkey 3
:?c:/kf%fff@kfffk#ffk#ffff%f%k#kffkfkffkfk#%fkf%ffk#k#fkk#ffk#%@kffkfkfkfffkkfk#::
:?c:.фгещфв::
kffffkf@kffkfkfkfffkkfk#:
#MaxThreadsPerHotkey 1
AntiCrash()
ShowDialog("1", "Автоматическое обьявление", "Введите желаемое обьявления", "Выбрать")
while (isDialogOpen()) {
}
f@fff@fff@ffk#kfk#f@kffkk#kf:
if SmartLoop  
{
    SmartLoop := false  
    return
}
SmartLoop := fkkfk%fkk#ffffk#fkk#ff%fkk%fff@fkkfkfk#fkk#ffffkf%#fkk%f@f@fkf@f@kfkfkfk#kfkf%f%kffkffkfk#fkkfkfk#%fff@kff@k#k#f@fff@fkkff@kf
Loop
{
Text := "{ffffff}Для остановки процесса нажмите F1"
addChatMessage(text)
sendchat("/ad " readString(hGTA, dwSAMP + 0x12D8F8, 256)" [pjr " getId() "]")
sleep 900
if not SmartLoop
        break
}
return


Сообщение отредактировал trenisk - Пятница, 09.03.2018, 22:19
Joni228 Дата: Пятница, 09.03.2018, 22:26 | Сообщение # 9
Бывалый
Сообщений: 318
Статус: Offline
Цитата trenisk ()
Ошибка
Был код до этой штуки:
Код
#MaxThreadsPerHotkey 3
:?c:/autoad::
:?c:.фгещфв::
autoad:
#MaxThreadsPerHotkey 1
AntiCrash()
ShowDialog("1", "Автоматическое обьявление", "Введите желаемое обьявления", "Выбрать")
while (isDialogOpen()) {
}
aadd:
if SmartLoop  
{
    SmartLoop := false  
    return
}
SmartLoop := true
Loop
{
Text := "{ffffff}Для остановки процесса нажмите F1"
addChatMessage(text)
sendchat("/ad " readString(hGTA, dwSAMP + 0x12D8F8, 256)" [pjr " getId() "]")
sleep 900
if not SmartLoop
        break
}
return

А стал
Код
#MaxThreadsPerHotkey 3
:?c:/kf%fff@kfffk#ffk#ffff%f%k#kffkfkffkfk#%fkf%ffk#k#fkk#ffk#%@kffkfkfkfffkkfk#::
:?c:.фгещфв::
kffffkf@kffkfkfkfffkkfk#:
#MaxThreadsPerHotkey 1
AntiCrash()
ShowDialog("1", "Автоматическое обьявление", "Введите желаемое обьявления", "Выбрать")
while (isDialogOpen()) {
}
f@fff@fff@ffk#kfk#f@kffkk#kf:
if SmartLoop  
{
    SmartLoop := false  
    return
}
SmartLoop := fkkfk%fkk#ffffk#fkk#ff%fkk%fff@fkkfkfk#fkk#ffffkf%#fkk%f@f@fkf@f@kfkfkfk#kfkf%f%kffkffkfk#fkkfkfk#%fff@kff@k#k#f@fff@fkkff@kf
Loop
{
Text := "{ffffff}Для остановки процесса нажмите F1"
addChatMessage(text)
sendchat("/ad " readString(hGTA, dwSAMP + 0x12D8F8, 256)" [pjr " getId() "]")
sleep 900
if not SmartLoop
        break
}
return


Ты так и не принял мой сурс который я тебе дал? Там короче какие обфукаторы поставишь, так и зашифрует.


trenisk Дата: Пятница, 09.03.2018, 22:52 | Сообщение # 10
Любитель
Сообщений: 42
Статус: Offline
Joni228, так ты мне скинул только ссылку на этот пост
Dworkin Дата: Четверг, 15.03.2018, 22:16 | Сообщение # 11
Боец
Сообщений: 110
Статус: Offline
Тестировал этот обфускатор.
Не обфуцирует классы. Хотя может надо что-то дополнительное указывать?
И еще есть такой код:
Код
colItems := objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk")._NewEnum

после обфускации он превращается примернов это:
Код
asdu%%151asd := &6^%&!*AS.ExecQuery(AS*D*&ASjSADU)._NewEnum

Если я вручную указываю обфуцировать ExecQuery, то скрипт выдает ошибку что мол с точкой что-то не так. То есть точкой между &6^%&!*AS и ExecQuery
Rinat_Namazov Дата: Четверг, 15.03.2018, 22:24 | Сообщение # 12
Боец
Сообщений: 123
Статус: Offline
Цитата Dworkin ()
Тестировал этот обфускатор.
Не обфуцирует классы. Хотя может надо что-то дополнительное указывать?

Возможно, не особо интересовался какие у него опции указывать надо.
Ну есть такая проблема, если указывать что нужно обфусцирвовать переменную testvar
И даже если она будет в функциях/классах, он ее тоже обфусцирует и в итоге хрень выходить.

Цитата Dworkin ()
И еще есть такой код:
Код
colItems := objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk")._NewEnum

после обфускации он превращается примернов это:
Код
asdu%%151asd := &6^%&!*AS.ExecQuery(AS*D*&ASjSADU)._NewEnum

Если я вручную указываю обфуцировать ExecQuery, то скрипт выдает ошибку что мол с точкой что-то не так. То есть точкой между &6^%&!*AS и ExecQuery

Ну анализировать код довольно сложно, в самом движке, частично анализ идет по словам, а где-то по символьно проверяет и т.д. Я сам запарился когда хотел переводить AHK код в байт-код, в движке то изи переделать, а транслировать код гемор, и в итоге забил.
Форум » Программирование » AHK Программирование » [Полезное] Обфускатор для AHK (Обфускатор AHK кода)
  • Страница 1 из 1
  • 1
Поиск:
Место баннерной рекламы свободно
Статистика Форума
Лучшие пользователи
АК_47 [34896]

GеNius [7171]

[CM]Russel [5566]

romka619 [5009]

[CM]AGRESSOR [4644]

Snake_Firm [4462]

Сэс [4411]

Artem_Buero [4228]

[CM]Durman [3165]

[CM]Рафаэль [3009]

iMaddy [2857]

sky_Woker [2856]

-Masson- [2714]

Новые пользователи
masterloadersta [18:34]

Artifanbek [18:31]

gulivez [18:29]

Vanek_Maestro [18:29]

Wedro2253 [18:27]

gvgikm [18:26]

Mns0gf [18:23]

xomrkx989 [18:20]

Hab1k [18:18]

Getnerssa [18:18]

efefefefefefefefefef [18:17]

Lord_Delson [18:16]

NomadDSS [18:15]