2009-05-04 3 views
3

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

Как вы можете запутать его с помощью бесплатного программного обеспечения? Я имею в виду, запутываю ваш код и оставляю Jars нетронутым.

Я пробовал с Proguard, безрезультатно. Даже автор сказал мне на форумах sourceforge, что это было невозможно.

Но вы можете сделать это вручную с уродливым взломом, связанным с переименованием банки в zip и mangling с внутренними данными, поэтому почему бы не программное обеспечение не могло это сделать?

ответ

0

Предположительно, у вас есть какой-то скрипт сборки, чтобы скомпилировать ваш источник, упаковать его с другими банками (One-Jar/Fat Jar/etc.) И построить свою банку.

Вы должны иметь возможность вставить задачу обфускации между компиляцией и упаковкой.

Если ваш инструмент обфускации по выбору будет принимать только вход в jar, вы должны быть в состоянии скомпилировать, jar и обфускать свой код независимо. После этого попросите свой скрипт испортить обфускацию файла и сделайте свою упаковку.

-2

Не тратьте впустую свое время. Любой может декомпилировать ваш запутанный код, единственное, что вы собираетесь сделать, это расстроить ваших законных пользователей, которые хотят отлаживать проблемы с вашим программным обеспечением.

Обфускация - это техническое решение (и бедное в этом) к правовой проблеме.

+2

Если единственная цель - защитить ваш IP-адрес, у вас есть точка здесь, но попробуйте вспомнить, что обфускация имела некоторые другие преимущества. Если площадь банки является важной обфускацией, она часто делает ее меньшей или большая часть будет выполнять большее сжатие. – willcodejavaforfood

+0

Я сомневаюсь, что след в банке вызывает беспокойство, так как он упаковывает необогащенные банки в других баночках. – Kevin

+8

Это несколько верно, но есть вопрос об усилиях. Непрофессиональная банка будет выглядеть почти идентично исходному исходному коду при декомпиляции. Хорошо запутанная банка не будет декомпилировать очень хорошо и потребует значительно больших усилий для извлечения рабочего исходного кода. Это не оптимально, но, безусловно, лучше, чем ничего, чтобы сдержать случайного атакующего. –

2

Вы можете создать одну банку из нескольких банок, используя Jar Jar Links. Затем вы обрабатываете результат с помощью ProGuard.

+2

Какое ужасное имя, но это все равно проверит. – Saiyine

+0

@ Saiyine, вы могли это сделать? –