1

Тема: AHK: Dynamic Obfuscator защита исходного кода

https://autohotkey.com/boards/viewtopic … mp;t=49887

2

Re: AHK: Dynamic Obfuscator защита исходного кода

AND optionally:
✔ Removing all your comments

Не понял юмора.

3 (изменено: qqlexa, 2018-05-31 21:21:52)

Re: AHK: Dynamic Obfuscator защита исходного кода

ypppu, В компилированной версии коменты типо есть?)
Реально странно.

https://github.com/qqlexa

4

Re: AHK: Dynamic Obfuscator защита исходного кода

Почему странно? Вдруг в задании к разработчику есть условие - предоставление исходных кодов. Мало ли ещё какие ситуации. Например скрипт сам в себя вносит изменения.

Мои разработки: Bsod finder, MyTetra Integrator

5

Re: AHK: Dynamic Obfuscator защита исходного кода

Я вообще мало верю в народный обфускатор, код которого общедоступен. Считаю что свой, никому не известный велосипед - всё таки понадёжней будет. Ещё не встречал ahk который нельзя было: 1 - достать код, 2 - запустить (имею виду рабочий скрипт с какой-либо простой защитой). Кроме AHK-H. Хотя я сам в некотором роде ещё индус. Но мыслей (вполне конкретных) куда двигаться у меня много. И как это реализовать я представляю себе.
Могу лишь сказать один 100% беспроигрышный вариант защиты кода - внешний usb брелок, в который загоняется часть кода. Сделать это можно на той же ардуине - и будет работать не хуже заводских токенов стоящих десятки $ за штуку. Вот в такой народный метод я поверю. После записи прошивки - микросхема делается недоступной для считывания программатором. Стоимость одного брелка в итоге должна быть 2-5 $ (чисто на вскидку, не изучал вопрос).

Мои разработки: Bsod finder, MyTetra Integrator

6

Re: AHK: Dynamic Obfuscator защита исходного кода

Пришло в голову, по мотиву этой темы.

Без претензии на объективность и важность в понимании сущего. Без гарантии на пригодность. Поставляется "как есть" и все возможные риски, явные или косвенные, Вы берёте под свою ответственность продолжая читать этот текст.

>===+|@|+===<#>===+|@|+===<#>===+|@|+===<#>===+|@|+===<

Эврика!

С фанатичным упорством, без сна и отдыха, после двух смен на заводе, портя зрение под мигающей лучиной ночника, Вы, каждый вечер отдавались своему вдохновению на протяжении многих и многих зим, вёсен, лет и осеней... Исчерчены тонны бумаги, мелким шрифтом оптимизируемых алгоритмов и заклеены все свободные поверхности Вашей обители описательным разнообразием "жуков" ползущим из StdErr по изображению схемы зависимостей... Единственное окно в мир теряет свою статичность только в моменты переключения вкладок браузера со StackOverflow в строку поиска или очередной "Help.htm"... Коллеги на работе стали побаиваться Вас, после того, как Вам довелось описать прорабу упрощающую схему на листке, с траекториями передвижения всех в рабочей области на момент, когда цех получает сырьё, после чего, его повысили, а у Вас стало больше тишины в зоне ответственности для методичных, прагматичных, бесконечных, последовательных дум...

И вот, настала череда сборки версии 91.3.122_beta.5. Степлер-компилятор бойко перебрал кипу замусоленных страниц, местами скреплённых синей изолентой и не выдав исключений принялся превращать этот эквивалент выраженной мысли в форму, которую она описывает! "Хм, странно!"- прозвучало вдруг в голове, ведь это нарушало последовательность, в результате которой всегда оказывалось найденным ещё одно важное упущение и мир продолжал двигаться дальше. "Наверно, сломался. " - стрельнула следующая мысль и на её излёте, степлер-компилятор непривычно зажужжал формируя заголовки и текст "ReadMe" и "Help"...

Жизнь потеряла привычный смысл, оборвав свою типичность в месте, где по началу жил гнёт ожидания никогда не завершающегося финала. Со временем его заместило любопытство искателя нашедшего в каждом таком моменте новый виток эволюции, который сулил движение в новом векторе, метаморфозы сознания, поиск незанятых поверхностей для новых "жуков" и прочую атрибутику жизни, занятого очень важным, человека... Но теперь, всё обстояло иначе!

Раньше, всё существо творения, от периферии интерфейса и до субатомных частиц-переменных, принадлежало абстракции живущей у Вас в голове и только Вы могли прикоснуться к нему через строки его закодированного представления растянутого ветвлением кода по вызовам функций и операторам перехода в уходящий горизонт ещё неизведанных технологий, а сейчас, Вам открылось иное! Каждый желающий, кто только бы захотел и если бы мог сейчас быть рядом с Вами, смог бы прикоснуться к его отзывчивой оболочке, отполированной временем, терпением и Вашим старанием! Почувствовать возможности, о которых раньше никто и не думал! Представить себе мир, в котором уже сейчас открываются врата перспектив! Отдаться необузданному желанию сделать пару полезных форков под его узкие специализации и... даже не заметить здесь Вас! Не заметить бледность Вашей кожи, годами не видевшей солнца и застиранного халата помнящего ещё первые наброски "if else { ... }"! Не спросить Вас о времени, начало которого затикало в момент, когда "Ваше яблоко" упало на Вашу же голову зарождая Эврику, воплощённую в случившейся кульминации! Не посчитать важным пожать Вашу руку и в знак благодарности пожелать представить Вас на Нобелевскую премию этого года! И все эти мириады "НЕ", заполняющие пространство своим смыслом, "НЕ" относящегося к ВАМ...!!!

>===+|@|+===<#>===+|@|+===<#>===+|@|+===<#>===+|@|+===<

Всё это конечно полезно, даже для того, чтобы просто это знать, но большинство, включая меня, могло бы им воспользоваться с той целью, чтобы сделать нечитаемыми и так лежащие в открытом доступе технологии, которые с той же лёгкостью, это большинство найдёт и применит. При желании, конечно же. Если Вы, уважаемый читатель этого текста - не разработчик, который мог бы провести мою утрированную аналогию, в своём рабочем окружении, как например, автор этого форка, о чём он поведал теперь и нам "устами" Malcev, то обфускатор теряет смысл в Вашем случае. Он и так-то - не панацея, а простенькие "калькуляторы", которые мы сочиняем в своих целях, при нашем же уровне упорства осилит любой, кто откроет справку и внимательно почитает гугль.

7

Re: AHK: Dynamic Obfuscator защита исходного кода

Обфускатор обфускатору - рознь. Можно конфету завернуть в один фантик - и любой ее достанет. А можно сделать систему фантиков многоуровневой вложенности, в которой будет не просто переименовывание - а переименовывание в зависимости от результата выполнения какой то функции. Результат выполнения этой функции будет зависеть от результата выполнения ещё какой-то функции (которая даст правильный ответ лишь в случае если результат выполнения ещё одной функции будет лежать в определенном диапазоне). Если конфету завернуть в фантики 20-и уровневой вложенности в которых перед самым выпуском продукта будут вручную рандомно внесены еще некоторые проверки не похожие на основную массу функций - то через некоторое время понимать как это все работает не будет даже сам творец. Я когда то составлял формулы в excel`е в 2-3 строчки ширины экрана - и они отлично работали. Но через какое-то время я их не понимал уже.

И конечно, надежда на только лишь обфускацию - это плохой путь. Обфускация должна использоваться в паре с другими средствами.

Из одного документального фильма я точно помню что доказательство гипотезы Пуанкаре которое привел Перельман - полностью понимало лишь несколько человек в мире. Так что теоретически можно защитится даже только одной обфускацией. Нужно только соорудить конструкцию многоуровневой вложенности. На это и должно быть потрачено основное усилие в обфускации. Вот и весь (на самом деле нет) секрет моего (уверен не только моего) метода. Пока не воплощенного кстати. Но дьявол как всегда в деталях.

KusochekDobra Ваш текст интересен, но не покидает странная мысль, что в нем завернуто какое-то послание, ключём к которому является эта строка: ">===+|@|+===<#>===+|@|+===<#>===+|@|+===<#>===+|@|+===<". На регулярку не похоже. Больше похоже на строку из кода какого-нибудь эзотерического языка программирования.

Мои разработки: Bsod finder, MyTetra Integrator

8

Re: AHK: Dynamic Obfuscator защита исходного кода

Была еще такая ссылка в этом году, на русском, по старому обфускатору, тоже, кстати, рабочая. http://cheat-master.ru/forum/149-729982-1

9

Re: AHK: Dynamic Obfuscator защита исходного кода

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

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

В документации, кстати, всё действительно подробно описано, хоть и на забугорном, с которым, в доступной форме справляется гугловый переводчик. Так что, иметь этот инструмент можно было сходу ещё тогда, если очень надо и не лень разбираться. У меня получилось в качестве эксперимента обфусцировать код, примерно в 3,5к строк исходника до абсолютной неузнаваемости, работающего без видимого изменения отзывчивости, включая скомпилированный вариант. Но потом меня понесло поискать и другие методы по взаимодействию с программами, их процессами и прочей низкоуровневой интервенции и оказалось, что всё это зря. Почти.

Кто сильно пожелает, разберёт Вашу поделку на составляющие, но для этого, требуется производное уникальности в этой поделке, иначе - не интересно, а раз не интересно, то нет и публики, а раз нет публики и никто не пользуется, то - зачем обфусцировать? Есть ещё две широкие категории, в которых первыми могут быть Ваши коллеги альтруисты, любопытствующие о принципах Вашего подхода, но многие методики так же широко обсуждаются и хорошо комментируются в открытых источниках, вроде того же StackOverflow, поэтому те, что пограмотнее, вначале пользуются поиском, который в большинстве случаев и Вас приводил к выводам, положенным в основание своих трудов. А вторые, это та широкая публика, которой Вы можете хотеть предоставлять свою поделку на основе возмездной благодарности(за бабло) и раз уж мы живём в России, то велик риск того, что её не захотят у Вас покупать, при этом, хотя ею пользоваться.

Последний случай более всего вероятен, потому как хоть всё, что Вы применили в своём подходе, можно повторить и возможно даже в более лучшем исполнении, но многим откровенно лень читать, искать, вникать... Скопипастить - быстрее. Наверное, в таких случаях обфусцирование оправдано, потому как если человеку лень разбираться изначально, чтобы написать свою версию, то разобраться в таком "мусоре" уж точно - без вариантов. И раз это так, то будет ли применён тот инструмент, о котором эта беседа, или это будет "конфета завёрнутая в систему фантиков с выносом астральной проекции сознания в 100500 раз перепакованную математическую модель вселенной" - сильной роли не сыграет, если вообще об этом можно задумываться в контексте такого ленивого человека.