Что нового

Еще раз про защиту то декомпиляции и деобфускации

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Suppir [?]
Только если получится разжать, то здесь не нужно писать готовых рецептов для будущих хакеров . Лучше в личку
Лично я пошел иначе: дампнул скрипт, пихнул его в чистый интерпретатор, запустил - работает. Однако декомпилятор с криками отказывается работать ссылаясь на неизвестный тип упаковки ( хотя интерпретатор последней версии справляется без проблем ). Я полагаю это 3.3.6.1? Ибо я знаком с AutoIt начиная с версий 3.3.8.1
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Да, это 3.3.6.1


Добавлено:
Сообщение автоматически объединено:

firex
ну а полный код скрипта можешь выложить?
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Suppir
Видимо нужны более древние декомпиляторы. Был у меня один, но я его потерял.
В любом случае этот файл даже близко не защищен, все лежит на поверхности.


Добавлено:
Сообщение автоматически объединено:

Suppir [?]
ну а полный код скрипта можешь выложить?
Ближе к вечеру как освобожусь.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Suppir
1. В обфускаторе задествую обезличивание имён переменных и функций, это слишком усложнит чтение.
2. При импорте include они распределяются последовательно сверху скрипта. Перемешай их со своими функциями и перед обфускацией сделай внутри функции поправки (раздели на 2 или удали неиспользуемые ветви алгоритма) чтобы она не была похожа на UDF, потому что если бы мне попался исходник и надо было бы удалить из него UDF функции, то сделал бы анализатор с учётом обесличивания имён и автоматически повырезал бы UDF, а это к примеру до 100 функций и твоих личных 10 и пользователю приходится анализировать уже не твой код, а UDF и в 10 раз увеличивается время на анализ.
3. Придумай свой способ обфускации и ни кому не рассказывай, иначе декомпилировщик просто прочтёт твои посты и поймёт твой уровень знаний и как декомпилировать,
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
UPX распаковывают все кому не лень. Тот же Restorator по умолчанию распаковывает файл при открытии. Но тем не менее с помощью UPXShell можно защитить файл от распаковки. Думаю, что для проектов, написанных на AutoIt, этого более чем достаточно.

Касаемо декомпиляции я склонен согласиться с C2H5OH, это больше похоже на паранойю. Достать код из скомпилированной программы и уж тем более разобраться в нем дано далеко не всем пользователям данной программы (если такие вообще найдуться). Большинство программ, написанных на AutoIt, имеют узкий круг пользователей и факт самой декомпиляции сводится практически к нулю. Исключением могут быть лишь боты для популярных игр. Но в этом случае в 99% найдется бесплатный или взломанный аналог или же ваш скрипт взломают, несмотря на любые принятые вами действия по защите кода. Такова реальность.

На мой взгляд для AutoIt достаточно использовать UPX/UPXShell и добавить в файл(ы) сертификат. Все остальное не от большого ума.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Yashied
а в чем будет принципиальное отличие между UPX и UPXShell?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Suppir [?]
Попробуй, достань код из файла
Код:
If NOT IsDeclared("Os") Then Global $os
#OnAutoItStartRegister "A1A0000023E_"
Global $a4900104c5c = a1a0000023e($os[1]), $a0f00202f31 = a1a0000023e($os[2])
#Region
	#AutoIt3Wrapper_Icon=icons\AutoIt_Main_v10_48x48_RGB-A.ico
	#AutoIt3Wrapper_Compression=3
	#AutoIt3Wrapper_UseUpx=y
	#AutoIt3Wrapper_Run_Obfuscator=y
#EndRegion
#EndRegion
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
alex33

Ну а где код, который показывает MessageBox? У тебя какой-то фрагмент кода представлен.


Добавлено:
Сообщение автоматически объединено:

Повторюсь, я использовал только стандартный UPX и обфускатор для версии 3.3.6.1.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Скомпилируй и взломай
задача - пропатчить (возможность ввода любого левого пароля)

Код:
$Var_1 = 'qwerty115'
$Var_2 = InputBox("Введи пароль", "Твой пароль.", "", "*")
If $Var_1 = $Var_2 Then
   MsgBox(0, "Поздравляю", "Ты взломал меня!")
Else
   MsgBox(16, "Облом", "Читай дальше")
EndIf
; crack для маленьких
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Yuriy
а ты уже взломал ту программку, что я выше выкладывал?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
есть сомнения?
отладчик OllyDbg и все
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Yuriy
и какой там код исходника?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Suppir сказал(а):
а в чем будет принципиальное отличие между UPX и UPXShell?

UPX в чистом виде, это консольная утилита. UPXShell - GUI для UPX с небольшими дополнительными плюшками.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Yashied
ну да, я понял, что там есть возможность более тонко параметры настраивать.

Вот только я не совсем понял, какие именно параметры лучше включать в этом UPXShell, чтобы сложнее было потом распаковать?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Suppir сказал(а):
А ты знаешь, какие именно параметры лучше включать в этом UPXShell, чтобы сложнее было потом распаковать?
Там всего одна галочка, которая представляет для тебя интерес - "Protect the file from decompression". И да, UPX не поддерживает 64-битные модули.

AutoIt представляет собой интерпритатор, т.е. для работы программы необходим скрипт ака исходный код. Напрашивается единственный логический выход для максимальной "защиты" кода - написать свой распаковщик скрипта на компилируемом ЯП, да еще так, чтобы сам скрипт можно было запустить из памяти, а не с диска. Вопрос только в том, нужно ли это?
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Suppir сказал(а):
Но программа будет ведь работать на 64-битных OS?

UPX может паковать только 32-битные файлы. Естественно, такая программа будет работать на x64 в WOW64.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Yashied
ну правильно, у меня при компиляции выставлены параметры "Compile X86 version (default)". По идее, должно нормально работать.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Suppir
Результат следующий:
Последние декомпиляторы не берут файл из-за того, что он содержит файл (с русскими символами в имени) в FileInstall.

Немного танцев с бубном и:
Код:
xxx.au3.tbl dump
203020|20CAiD2E5F1F2|20CAi
0da6ef494f.png

*Удалил все касающиеся автора данные.
 
Верх