обфускация

Jan 28, 2009 13:51

оказывается, пока мы тут различными способами боремся за понятность исходников(и, кстати, довольно безуспешно), люди пытаются сделать противоположное.

Обфускация - запутывание кода программы, т.е. приведение ее к нечитаемому виду, сохраняя при этом ее функциональность. Нужно в первую очередь для защиты от незаконного использования ( Read more... )

это интересно, prog

Leave a comment

Comments 36

enoden January 28 2009, 14:03:32 UTC
Хорошо, что на brainfuck не переходят.

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Reply

kamury January 28 2009, 14:42:55 UTC
между прочим, отличная идея =) это вам не форматирование текста или вставка недействующих конструкций! только написать такой обфускатор будет непросто )

Reply

enoden January 28 2009, 14:47:10 UTC
Ну да. Конвертер для этого языка из php, скажем, непросто написать.

Reply

_breadfan_ January 29 2009, 08:01:48 UTC
интересно, набегут ли в этот тред лисперы, уверяя, что забабахать такой транслятор - дело 5 минут и 20 строчек кода на их любимом языке и AST рулят? :))

Reply


je_ta January 28 2009, 15:50:55 UTC
ой, у нас такое сплошь и рядом, мне порою приходится переделывать программы - матмодели, написанные под ДОС лет десять назад товарищами, которые сейчас, естественно, внятно ответить на вопрос, а что же они хотели этим сказать, не могут

авторы - естественно, не профессиональные программисты

Reply

kamury January 29 2009, 05:57:52 UTC
а у нас - профессиональные, и от этого еще печальнее!

Reply


kutsd January 28 2009, 19:49:48 UTC
дык это вообще предельно ясный и читаемый код, практически все так пишут!! :))
вот что-то типа минимальной обфускации примера выше, что удалось придумать за 10 минут (правда не уверен в правильности кода, очень давно не писал на С и нет компилера под рукой чтоб проверить :))

#define q(x) (x[a])
#define w(y) q(y)=q(c)
int a=99,while(w(d)+(w(b)/5),a--);

Reply

kamury January 29 2009, 06:18:47 UTC
и не говори, все пишут. за это руки отрубать надо!

define вообще великая штука, но тогда уж не могу не припомнить
#define true ((rand() % 2) ? true : false)

Reply

kutsd January 29 2009, 16:49:39 UTC
ну если после этого код рабочим получится, то очень даже неплохо.. а вообще в C нет понятия true и false (есть 0 и не 0 :)))

а define очень удобен, хоть и считается потенциально опасным (изза чего его убрали из явы..))

Reply


ex_vernant64 January 29 2009, 07:11:46 UTC
странно, что ты не знала :)
увидел много радостных постов. радостно)

Reply

kamury January 29 2009, 08:03:14 UTC
а ты, человек, имеющий счастье возиться только с высококачественным вылизанным кодом, вообще молчи! )

кстати, как у вас в моторолке с этим? наверное еще хлеще?

Reply

ex_vernant64 January 29 2009, 08:13:22 UTC
8)

судя по code-style примерно как в mq. хотя некоторая мусорность судя по всему есть. ничего, я нахожусь в отделе в котором можно будет писать красиво :) i hope.

плюс. cs, cs-ом, но тут больше внимания процессу производства уделяется, т.е. всякие cmmi, процессы, бла-бла.. по-крайней мере идут к этой сертификации.

Reply


_breadfan_ January 29 2009, 08:06:52 UTC
есть даже целый конкурс для обфусцированного кода на С
http://www.ioccc.org/winners.html

а вот и перл:
http://lurkmore.ru/Perl

Reply

kamury January 29 2009, 08:30:56 UTC
по-моему перл и обфускировать не надо )))

но зато всех программистов надо в принудительном порядке заставлять писать минимум год на питоне. чтобы знали, гады, что такое нормальное форматирование!

Reply

_breadfan_ January 29 2009, 08:38:46 UTC
> по-моему перл и обфускировать не надо )))
ковбойский язык ;)

> но зато всех программистов надо в принудительном порядке заставлять писать минимум год на питоне.

"программист на фортране пишет фортран-программы на любом языке" :) Есть у меня 1 знакомый, который писал просто ацкий код. Нашел себя в фортране :))

Reply

_breadfan_ January 29 2009, 08:39:10 UTC
так что питон - не панацея

Reply


Leave a comment

Up