Рубин obfuscator [дубликат]

У этого вопроса уже есть ответ здесь:

Есть ли рубин obfuscator или «компилятор»?

22
задан Paul Sasik 23 January 2010 в 14:22
поделиться

3 ответа

Возможно, вы захотите взглянуть на мою попытку SIMD / Non-Simd:

  • VREP , базовый класс с шаблоном со специализациями для SIMD (обратите внимание, как он отличает между поплавкой SSE, и SSE2, которые ввели целочисленные векторы.).

  • Более полезно V4F , V4i классы и т. Д. классов и т. Д. (Подклассы через промежуточное соединение V4 ).

Конечно, это гораздо более ориентировано на 4-элементные векторы для RGBA RGBA / XYZ . Расчеты типа . Но общие принципы могут быть полезны.

-121--2850201-

Существует несколько вариантов, таких как RUBYScript2exe или Allinoneruby . Тем не менее, все обфускатели интерпретированных языков имеют тенденцию иметь серьезные недостатки: они обычно не понимают более сложных методов метапрограммирования.

То есть они не могут обязательно сказать, что что-то вроде foo.send (: бар, ...) - это вызов на методу в совершенно другой библиотеке или что EVAL («Требовать% W {ABC def Ghi}») означает потребовать трех разных библиотек. Это тривиальные примеры - все становится гораздо более сложным, когда вы бросаете метод_миссинга и его ILK в смеси.

Когда Obfuscator столкнулся с таком родом кода, он все равно будет собирать соответствующие инструкции, но это может не знать, чтобы также включить определенные библиотеки или другой код из других стран. Это может привести к серьезным вопросам, поскольку динамически включают D или D или d d, не будет доступно во время выполнения в исполняемом исполняемости статически связанного.

К сожалению, многие драгоценные камни и библиотеки используют сложные методы метапрограммирования. Вы, вероятно, попаду в неприятности здесь, если вы попытаетесь использовать запутывание и ожидать, что ваша программа будет иметь такое же поведение. Хуже все равно, потому что есть так много уровней косвенности, если в отбивной версии возникает ошибка, вы никогда не узнаете, что именно произошло или как его воспроизвести.

26
ответ дан 29 November 2019 в 05:21
поделиться

В зависимости от того, что вы пытаетесь сделать, есть драгоценный камень, который позволит вам создать расширение C из скрипта RUBY, который затем может использоваться в качестве требования в вашем приложении Ruby. Это называется Ruby2Cext. Он запутает весь ваш код в C, и то, что вам может потребовать .so в отдельном скрипте Ruby, и он будет работать как обычный рубин.

3
ответ дан 29 November 2019 в 05:21
поделиться
0
ответ дан 29 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: