Java, загрузи jar-байты и используй его - PullRequest
1 голос
/ 03 ноября 2011

Есть ли способ загрузить зашифрованный файл (то есть файл jar), расшифровать его (чтобы получить реальный байтовый массив) и использовать его без создания файла в файловой системе и запуска его?

byte[] jarBytes=Decrypter.decrypt("my\\encrypted\\jar\\file");
//use jarBytes to execute an application without create a real File with this bytes...

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Конечно.

Входной поток может поступать из ресурса (то есть по пути к классам). Байтами можно манипулировать по мере необходимости.

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

Если кого-то интересует ваш код, он либо просто а) перепроектирует ваш загрузчик классов, либо б) просто использует ваш загрузчик классов как есть, и не будет беспокоиться об обратном инжиниринге зашифрованного кода ... но удачи в любом случае:)

0 голосов
/ 03 ноября 2011

Как это?

       Cipher c = Cipher.getInstance(ALGORITHM);
       c.init(Cipher.DECRYPT_MODE, key);
       byte[] decValue = c.doFinal(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...