Который невозможно снять
Нет таких обфускаторов, которые снять бы было нереально. https://github.com/obfuscator-llvm/obfuscator/wiki неплох, на уровне исходников работаетКоторый невозможно снять
llvm-obfuscator довольно хорош. Только со сборкой под винду ебля.Вообще говоря, я еще не видел ни одного хорошего оупенсорсного обфускатора для плюсов.
Ну попробуй сними тот же llvm-obfuscator, которому около 5 лет. Хоть и есть средства ускоряющие процесс де-обфускации, руками там придётся чистить многое.Самый лучший - это написанный руками. Даже приваты быстро снимаются, а паблики вообще, на раз два
кста, ты будешь поддерживать свой обфускатор? Если подятнешь регулярки и возьмешь скриптовый язык, то получится вполне неплохой и рабочий обфусакторНу попробуй сними тот же llvm-obfuscator, которому около 5 лет. Хоть и есть средства ускоряющие процесс де-обфускации, руками там придётся чистить многое.
Поддерживать - точно нет, проще написать с нуля, чем упираться в постоянные костыли. Обфускатор вряд ли я буду когда-то писать, морфер возможно.кста, ты будешь поддерживать свой обфускатор? Если подятнешь регулярки и возьмешь скриптовый язык, то получится вполне неплохой и рабочий обфусактор
Лол! То неимоверно грустное чувство, когда ты в вайтхэте зарабатываешь в два раза меньше, чем предлагают в блекхэте.На зп в месяц от 10к$
Повод задуматься ?Лол! То неимоверно грустное чувство, когда ты в вайтхэте зарабатываешь в два раза меньше, чем предлагают в блекхэте.
Извините за флуд, но тоже про это подумал уже давно.)Лол! То неимоверно грустное чувство, когда ты в вайтхэте зарабатываешь в два раза меньше, чем предлагают в блекхэте.
Я делал много обфускаторов, в том числе и для сишечки с плюсами, но делал это на уровне AST, а не LLVM'a. Всегда, когда дело доходит до LLVM'a задаешься вопросом, вот допустим, что мы хотим пошифровать строки. Самый лучший вариант - не дешифровывать их на старте, а расшифровывать на стек например. В LLVM IR они лежат отдельно от кода, то есть надо будет найти, где каждая строка используется в коде и туда вставить дешифратор с выделением памяти на стеке или куче. При этом константные данные могут быть использованы в другом модуле (ну окей, в сишечке и плюсах нет модулей, имеется ввиду другой файл с исходными кодами), и тут у нас нерешешаемая проблема, если только не заставлять разработчика линковать все bc-файлы в один большой bc-файл с помощью llvm-link или как то так он назывался там. На уровне AST ты просто, если находишь строковый литерал внутри функции, тут же выделяешь стековую память для расшифровки и литерал заменяешь на вызов функции дешифровки. Если строковый литерал объявлен в глобальном скоупе, то дешифруешь его на старте, тут уж ничего не попишешь, но хотя бы это можно сразу определить.Но все-же, это не какая-то глобальная задача, хотя идея с обфускатором может даже и интересно было-бы, но требует титанических усилий, мне кажется одному это очень тяжело делать.)
Лол! То неимоверно грустное чувство, когда ты в вайтхэте зарабатываешь в два раза меньше, чем предлагают в блекхэте.
Извините за флуд, но тоже про это подумал уже давно.)
че творит 2020 год)))Повод задуматься ?
Я тоже примреное такое делал, только для сижки и парсил данные питоном. + макросы тоже отличная штука. Но у меня был по семплам, что гораздо легче. Но ща за такие штуки хорошие бабки платят.Я делал много обфускаторов, в том числе и для сишечки с плюсами, но делал это на уровне AST, а не LLVM'a.
Интересно бы было глянуть реализацию.Я делал много обфускаторов, в том числе и для сишечки с плюсами, но делал это на уровне AST
Не, это привад). Но по сути: берешь libclang (или pycparser, если нужна только сишечка, или srcml, если уж совсем охото поупарываться xml-представлением сосров), парсишь, обходишь дерево, заменяя некоторые узлы, профит. Алгоритмы все известны и описаны в интернетах, некоторые на уровне AST чуток сложнее (типа control flow flattening), некоторые попроще (типа шифрования строк и константных данных и генераторы мусорного кода). Вообще я бы канеш посмотрел, как некоторые вещи реализованы в Tigress (они вплоть до виртуализации на уровне AST сделали), но к сожалению они кому попало ее для тестов не дают, а сорсы тем более (да даже, если бы они выдавали сорсы, то тут тоже хер поймешь, тк она вроде на OCaml'е написана). Наверное Tigress сейчас самый топовый по технологиям обфускатор на уровне AST, если вдруг он у кого-то есть, скиньте мне его в личку штоль.Интересно бы было глянуть реализацию.
а можно семплы посмотреть. Тип до и послеНе, это привад). Но по сути: берешь libclang (или pycparser, если нужна только сишечка, или srcml, если уж совсем охото поупарываться xml-представлением сосров), парсишь, обходишь дерево, заменяя некоторые узлы, профит. Алгоритмы все известны и описаны в интернетах, некоторые на уровне AST чуток сложнее (типа control flow flattening), некоторые попроще (типа шифрования строк и константных данных и генераторы мусорного кода). Вообще я бы канеш посмотрел, как некоторые вещи реализованы в Tigress (они вплоть до виртуализации на уровне AST сделали), но к сожалению они кому попало ее для тестов не дают, а сорсы тем более (да даже, если бы они выдавали сорсы, то тут тоже хер поймешь, тк она вроде на OCaml'е написана). Наверное Tigress сейчас самый топовый по технологиям обфускатор на уровне AST, если вдруг он у кого-то есть, скиньте мне его в личку штоль.