Друзья, отстал от жизни. Был у меня Armadillo, ещё до того как его с треском взломали.... А что теперь? Хотелось бы как минимум обфускатор, защитить код программы. Ну и желательно какую то схему генерации и проверки ключей. Или мухи отдельно, котлеты отдельно?
P>Друзья, отстал от жизни. Был у меня Armadillo, ещё до того как его с треском взломали.... А что теперь? Хотелось бы как минимум обфускатор, защитить код программы. Ну и желательно какую то схему генерации и проверки ключей. Или мухи отдельно, котлеты отдельно?
Здравствуйте, Poseidon, Вы писали: P>Друзья, отстал от жизни. Был у меня Armadillo, ещё до того как его с треском взломали.... А что теперь? Хотелось бы как минимум обфускатор, защитить код программы. Ну и желательно какую то P>схему генерации и проверки ключей. Или мухи отдельно, котлеты отдельно?
Хз по моему опыту сильная защита ведет к большому кол-ву фолсов от антивирусов, и большему количеству фродов. Слабая взламывается легко, но кол-во покупателей не изменилось в моем случае.
Я раньше использовал VMProtect и заимел озвученные выше проблемы. Сейчас использую простую самодельную реализацию и ассиметричные ключи. Получается невозможно сделать кейген, и остается только патч. Это многих останавливает, боятся, тк никто не знает что там еще патч меняет в коде.
Здравствуйте, Poseidon, Вы писали:
P>Друзья, отстал от жизни. Был у меня Armadillo, ещё до того как его с треском взломали.... А что теперь? Хотелось бы как минимум обфускатор, защитить код программы. Ну и желательно какую то схему генерации и проверки ключей. Или мухи отдельно, котлеты отдельно?
А что там нынче с DotNet Core RT и Mono AOT — компиляция в native, вроде бы в DotNet Core v6 обещают уже официальную поддержку?
Если сначала обработать Eazfuscator-ом, а потом скомпилировать в native, то так получится?
Вероятно придется отказаться от reflection, ну можно же только часть кода так защитить, например какую-нибудь особо важную свою библиотеку?
После компиляции в native ее уже не вызвать как managed, только через cdecl?
Если под Шиндоуз, то нативную либу с важными для софта участками кода и одновременно с вызовами и проверками активации можно наверно дополнительно завернуть в Enigma Ptotector со всеми их рекомендациями по защите?
Т.е. приготовить либу примерно так: DotNet либа -> Eazfuscator -> DotNet компилятор в native -> EnigmaProtector
А потом даже если ее отстригнут от основного DotNet приложения, то только вместе с важным в ней функционалом, после чего приложение придется переписывать самостоятельно, а у кулхацкеров останется только отвязанный от защиты GUI, который кстати можно все же завернуть хотя бы одним обфускатором без native компиляции типа Eazfuscator или Babelfor.
И если такую нативно защищенную либу распространять, как BLOB ресурс DotNet приложения, то вероятно и антивирусы не будут злобствовать, как если бы просто защитить Энигмой executable ?
Здравствуйте, Черный Властелин, Вы писали:
ЧВ>Сейчас использую простую самодельную реализацию и ассиметричные ключи. Получается невозможно сделать кейген, и остается только патч. Это многих останавливает, боятся, тк никто не знает что там еще патч меняет в коде.
В принципе — да, но есть пара моментов.
1. Кроме бинарных патчей еще есть run-time патчи, которые сам бинарник не трогают, а патчат напрямую в памяти уже загруженный код. Обычно работает через DLL side-loading. Это требует более продвинутых скилз от хакера, но зато обычно работает с больше чем одной версией. И это в принципе куда более чистый и элегантный хак. Это тоже естественно ловится, но требует времени.
Если сделать защиту, которая не под силу l33t хакерам, то они пообламывают об нее зубы и пойдут жаловаться камрадам, которые уровнем выше. Этим надо держать марку и, если продухт популярный, то они запиливают run-time patch.
Смысл в том, что если пилить защиту, то либо её надо делать предельно простой, либо достаточно продвинутой. Иначе в интернетах будут плавать универсальные forward-compatible патчи.
2. Второй момент, что легко-ломаемые защиты приводят к засиранию Гугл результатов по названию продукта.
То есть таки лучше делать непростую кастом защиту. Не обязательно чего-то там шифровать, достаточно нашпиговать код проверками так, чтобы вычистить их все занимало очень много времени.
Здравствуйте, Poseidon, Вы писали:
P>Друзья, отстал от жизни. Был у меня Armadillo, ещё до того как его с треском взломали.... А что теперь? Хотелось бы как минимум обфускатор, защитить код программы. Ну и желательно какую то схему генерации и проверки ключей. Или мухи отдельно, котлеты отдельно?
Много лет пользуюсь Obsidium. Автор охотно идёт на контакт, помогает, разъясняет.
Ключи есть, защита есть, виртуальная машина есть, x64 защищает. С антивирусами более-менее (тьфу-тьфу-тьфу)