Как добавить безопасность в файл jar загрузки Spring? [Дубликат]

В ОС Windows найдите это в php.ini «php_pgsql.dll» и удалите «;» в расширении, вот и все :) Cheeers!

4
задан danielad 24 November 2015 в 13:57
поделиться

5 ответов

GCJ - бесплатный инструмент, который может скомпилировать либо байт-код, либо собственный код. Помня, что это своего рода поражение цели Java.

2
ответ дан AgileJon 16 August 2018 в 02:48
поделиться
  • 1
    я был бы признателен, если бы вы поделились более подробными сведениями о вашем нахождении, можете ли вы работать после ccoversion или могли бы назвать их библиотечными, или вы сможете запускать их из строки commommad или исполняемого файла? – danielad 24 November 2015 в 14:02

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

Предложение с этого сайта (oracle сообщество)

(чистый путь), Obfuscate вашего кода, существует множество инструментов с открытым исходным кодом и бесплатными инструментами обфускатора, вот их простой список: [Openfind obfuscators lis t]. Эти инструменты делают ваш код нечитаемым (хотя вы все же можете его декомпилировать), изменяя имена. это самый распространенный способ защитить ваш код.

2. (Не так чисто). Если у вас есть целевая платформа (например, окна) или вы можете иметь разные версии для разных платформ, вы можете написать сложную часть ваших алгоритмов на языке низкого уровня, например C (который очень сложно декомпилировать и понять) и использовать его как родную библиотеку в вашем приложении Java. он не чист, потому что многие из нас используют java для своих кросс-платформенных способностей, и этот метод ослабляет эту способность.

, а далее ниже шаг за шагом: ProtectYourJavaCode

Наслаждайтесь! Держите ваши решения добавленными, нам нужно это больше.

0
ответ дан danielad 16 August 2018 в 02:48
поделиться

Сначала вы не можете избежать обратного преобразования кода. Байт-код JVM должен быть простым для выполнения, и есть несколько программ для его обратной инженерии (то же самое относится к .NET CLR). Вы можете только сделать все труднее поднять барьер (т. Е. Стоимость), чтобы видеть и понимать ваш код.

Обычный способ - обфускать источник с помощью какого-либо инструмента. Классы, методы и поля переименовываются на протяжении всей кодовой базы, даже с недопустимыми идентификаторами, если вы решите, что делает код, который невозможно понять. У меня были хорошие результаты с JODE в прошлом. После обфускации используйте декомпилятор, чтобы увидеть, как выглядит ваш код ...

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

Вы также можете попробовать конвертировать приложение Java в некоторые окна EXE, которые скроют ключ, что это Java вообще (в некоторой степени) или действительно скомпилировать в машинный код, в зависимости от вашей потребности в JVM-функциях. (Я не пробовал это.)

3
ответ дан gkrogers 16 August 2018 в 02:48
поделиться

Вы не можете. Если JRE может запустить его, приложение может декомпилировать его.

Лучшее, на что вы можете надеяться, это сделать его очень трудным для чтения (замените все символы комбинациями «l» и «1», и 'O' и '0', положить много бесполезного кода и так далее). Вы были бы удивлены, насколько нечитаемы вы можете сделать код, даже с относительно тупым инструментом перевода. Это называется обфускацией и, хотя и не совершенным, иногда бывает адекватным.

Помните, вы не можете остановить определенного хакера больше, чем определенный грабитель. То, что вы пытаетесь сделать, это сделать вещи очень трудными для случайного злоумышленника. Когда представлены символы O001l1ll10O, O001llll10O, OO01l1ll10O, O0Ol11ll10O и O001l1ll1OO и код, который, кажется, ничего не полезен, большинство людей просто сдастся.

9
ответ дан paxdiablo 16 August 2018 в 02:48
поделиться

Немного поздно знаю, но ответ - нет.

Даже если вы пишете на C и компилируете собственный код, есть dissasemblers / debuggers, которые позволят людям пройти через ваш код. Предоставлено - отладка оптимизированного кода без символической информации - боль, но это может быть сделано, мне приходилось иногда это делать.

Есть шаги, которые вы можете предпринять, чтобы сделать это сложнее - например, на окнах вы можете вызвать API IsDebuggerPresent в цикле, чтобы узнать, отлаживает ли кто-то ваш процесс, и если да, и это релиз-сборка - завершите процесс. Конечно, достаточно решительный атакующий может перехватить ваш вызов IsDebuggerPresent и всегда возвращать false.

Существует целый ряд методов, которые появились - люди, которые хотят что-то защитить, и люди, которые хотят взломать его широко, это настоящая гонка вооружений! После того, как вы пойдете по этому пути, вам придется постоянно обновлять / модернизировать свою защиту, нет остановки.

1
ответ дан quixver 16 August 2018 в 02:48
поделиться
Другие вопросы по тегам:

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