Pull to refresh

Comments 14

Идеальное решение для вселенной без вирусов и хакеров (на всякий случай: не для нашей, то есть)

Описанный вами механизм вполне жизнеспособен, он уже более 6 лет используется для распределенной обработки данных в Apache Spark, например.

Вы несколько отстали от прогресса. Он ещё в конце девяностых позволял загружать байткод по сети. Гуглите про апплеты, как наиболее яркий пример. Примерно как появилась Java, так сразу и возможность появилсь. И я даже больше скажу — почти любой язык может что-то грузить по сети, а потом как-то интерпретировать.

По сути это замечание для тех, кто внезапно обнаружил, что в Java и сегодня есть этот функционал (и даже в расширенном варианте).

Хотя творить что-нибудь в области удалённого запуска кода никто, конечно же, не запрещает и сегодня, но писать велосипеды без понимания того, что было сделано десятки лет назад — ну это несколько убого выглядит.

Я в курсе про загрузку кода по сети, и про апплеты, видать я плохо описал статью


принципиальное отличие не загружать всю jar, не возиться с ее выгрузкой, и с проверкой безопасности, на уровне подписания ее и других — а именно только то, что относиться к лямбде и не более того


Если так посмотреть то и Java сама по себе велосипед

Почему бы и нет, подскажите что почитать, на сколько мне известно serverless — очень широкий термин

В списке хабов явно не хватает ненормального программирования.


Данное возможно при условии развития функции декомпиляции байт-кода в код AST/Java/…, по факту такая функция реализована в декомпиляторе JAD

Граф Вишня умер тридцать лет тому назад!
Последняя версия JAD вышла примерно в 2001 году и class-файлы с лямбдами он не понимает по объективным причинам.


Из опенсорсных декомпиляторов есть Fernflower, Procyon, CFR.


Библиотека не весь байт код передает, это связано с тем, что не весь байт код имеет объектное представление

Это как?

Библиотека не весь байт код передает, это связано с тем, что не весь байт код имеет объектное представление

Это так:
У меня есть ряд классов, например такой


MInsn — он соответствует инструкциям NOP, ACONST_NULL, ICONST_0,…
MJumpInsn — а этот соответствует инструкция условного и безусловного перехода IFEQ, GOTO


И таких инструкций много
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html


Большинство этих инструкций представлено тем или иным классом, возможно есть инструкции для которых не реализовано представление, хотя… уже нет вроде (в версии 2)


Другой момент, что эти инструкции байт кода могут содержать параметры, которые тоже должны иметь представление, и вроде я их все реализовал


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


Последняя версия JAD вышла примерно в 2001 году

Проект жив и последний commit был 6 дней назад
https://github.com/java-decompiler/jd-core


А последний релиз 2019, на сайте у них заявлено поддержка до 10 версии JDK

Проект жив и последний commit был 6 дней назад
https://github.com/java-decompiler/jd-core

Не вижу, чтобы jd-core где-либо называл себя JAD.
А тот самый JAD уже давно заброшен:


Jad (Java Decompiler) is, as of August 2011, an unmaintained decompiler for the Java programming language.[1] Jad provides a command-line user interface to extract source code from class files.

У них с jd-core даже языки реализации не совпадают. jd-core написан Java, а JAD — на C.

Ох… извиняюсь, не знал про JAD в реализации С

Sign up to leave a comment.

Articles