URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 118008
[ Назад ]

Исходное сообщение
"Выпуск CFR 0.146, декомпилятора для языка Java"

Отправлено opennews , 28-Июл-19 18:45 
Доступен (https://github.com/leibnitz27/cfr/releases) новый выпуск проекта CFR (https://www.benf.org/other/cfr/) (Class File Reader), в  рамках которого развивается декомпилятор байткода виртуальной машины JVM, позволяющий воссоздать содержимое скомпилированных классов из jar-файлов в форме кода на языке Java. Поддерживается декомпиляция  современных возможностей Java, включая большую часть элементов Java 9, 10 и 12. CFR также может декомпилировать в Java содержимое файлов с классами и от других языков, использующих JVM, таких как Kotlin, Scala и Groovy. Код проекта написан на языке Java и распространяется (https://github.com/leibnitz27/cfr) под лицензией MIT.

URL: https://github.com/leibnitz27/cfr/releases
Новость: https://www.opennet.ru/opennews/art.shtml?num=51181


Содержание

Сообщения в этом обсуждении
"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено A.Stahl , 28-Июл-19 18:45 
На что угодно пойдут лишь бы open source не использовать!

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 06:54 
MIT - не опенсорс? Да ладно? Тебе где-то она код запрещает использовать?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено A.Stahl , 29-Июл-19 07:02 
При чём тут лицензия на CFR?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 19:53 
А я думал, что java как IL код c# декомпилируется. Там вообще практически идентичный оригиналу код получается.  

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 11:14 
Правильно думал. А если забыли убрать отладочную информацию - можно даже имена переменных восстановить.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено VINRARUS , 28-Июл-19 19:59 
Смысл? Кроме Minecraft ни одного сложного софта на Java не знаю.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено proninyaroslav , 28-Июл-19 20:05 
Intellij? Eclipse? NetBeans?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 20:53 
80 GB памяти должно хватить, почти не тормозит.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 22:02 
intellij idea летает на 768MiB RAM

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Anonim , 29-Июл-19 01:00 
Вы из Эстонии?
Можно узнать вашу ос на которой вы в idea пишите под jvm имея 768 mib ram. + размер swap файла

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено А , 29-Июл-19 13:34 
Из виртуалки с религиозно-чистым в Венде.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 18:16 
Arch Linux
swap 24GiB

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено лютый жабист__ , 30-Июл-19 07:56 
>Вы из Эстонии? Можно узнать вашу ос на которой вы в idea пишите под jvm имея 768 mib ram

Про 768МБ это бред, конечно, но на 4ГБ работать вполне нормально, если рядом хромы/шромы не открывать. А это тазик 10-15 летней давности, который жалко выкидывать, пока сам не сломался.
Если у прогера на работе стоит ПК с меньше чем 32ГБ ОЗУ, надо работу менять, там небось и на туалетной бумаге с мылом экономят.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Минона , 29-Июл-19 07:45 
Летает, но низенько-низенько

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено anonymous , 29-Июл-19 08:01 
Не знаю как там Intellij Idea, но вот JetBrains GoLand:

ps axw -o rss,cmd | sort -n | grep java | grep GoLand | awk '{print $1}'
1627980

(это в килобайтах)


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено proninyaroslav , 29-Июл-19 11:12 
Ну предложите альтернативу полнофункциональному IDE для Java который не будет есть 80 Гб.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Анончик999999 , 28-Июл-19 21:08 
Новый Eclipse мало того, что с кучей ошибок, так еще и адски тормозит! Или г*вно новые Java.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено А , 29-Июл-19 13:37 
ИДЕ, кстати, вообще склонны к нестабильности. С Эклипсом сие вообще так давно, что можно сказать: всегда.

У других - получьше.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 21:41 
Не знаешь, потому что Java-приложения, которые считают лично твои (подчеркиваю: лично твои) деньги, ты не скачиваешь бесплатно без смс себе на свой комп, а работают в том банке, на котором лично твои (подчеркиваю: лично твои) деньги лежат.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 21:46 
Складывать и вычитать с правильной точностью - сложная задача? Да и какая разница, что там используют, лишь бы работало норм, а работает многих через одно место и по случайности там и жаба ииспользуется. Совпадение, правда?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено имя , 28-Июл-19 21:52 
> Складывать и вычитать с правильной точностью - сложная задача?

Сложная — делать миллионы сложений и вычитаний одновременно, чтобы это ещё хотя бы выглядело безопасно. И не только их, так как ещё существует фискальная нагрузка, сложные проценты по вкладам и кредитам, конвертация валют и т. д.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Anon999 , 29-Июл-19 00:37 
С этой задачей и дотнет, как минимум, не хуже справляется.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 07:47 
> дотнет

Те же яйца, только в профиль.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 13:14 
А новость про Яву

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 21:50 
> а работают в том банке

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


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено пох. , 29-Июл-19 11:48 
о, вот там как раз бывает очень большой смысл - когда уже не то что разработчика, а еще два поколения пришедших после него закатали в бетон в подвале банка под серверной (чтоб умилостивить электронных богов и обеспечить много-много девяток - кстати, помогает), куда делись исходники уже и выяснять бесполезно, а крайне надо что-то поправить по мелочи, и, желательно, не стать следующим приношением богу девяток.

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

иногда и не слегка. Но очень-очень надо, потому что заменять тот код полностью - это вообще катастрофа.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 16:39 
И кто на такую работу вообще согласится? Зачем это надо вообще простому смертному?
А так, анекдот неплохой получился.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 30-Июл-19 11:03 
>когда уже не то что разработчика, а еще два поколения пришедших после него закатали в бетон в подвале банка под серверной

тогда там не java, а cobol


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено VINRARUS , 28-Июл-19 23:44 
> Не знаешь, потому что Java-приложения, которые считают лично твои (подчеркиваю: лично твои)
> деньги, ты не скачиваешь бесплатно без смс себе на свой комп,
> а работают в том банке, на котором лично твои (подчеркиваю: лично
> твои) деньги лежат.

Уверен? https://picua.org/images/2019/07/28/dc659bb44fad8f66fe415521...


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 00:13 
"банк".equals("банкомат") // => false

твоя установленная-adhoc винда в банкомате -- лишь фронтэнд для приложений на Java


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Минона , 29-Июл-19 07:51 
Банкомат этого банка должен работать на Firefox OS, и связь с банком держать через Tor :)

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено анононимс , 29-Июл-19 21:11 
я такое относительно часто вижу при чем в разных странах. глючит, но все равно пихают. то банкомат, то почтомат, то реклама в магазинах. под линукс программы тоже глючат. видел такое как-то в медцентре.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 12:08 
>лично твои

Настоящие владельцы банков опеннет не читают, и тем более - не комментируют. Те деньги, которые лежат в банке - они не "твои", а того банка.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено А , 29-Июл-19 13:40 
Кстати, да. Попробовать их обналичить много в один заход и сразу поймёшь, кто кого за какое место крепко схватил. )))

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено АнонимГоним , 29-Июл-19 18:16 
Ну не совсем. Тыж наверное их на счет кладешь и может даже хочешь все эти проценты и кешбеки получать, а это значит что банк их проворачивает и не возможность выдать большую сумму разом это нормально. Хочешь получить сразу все клади в ячейку, положил забрал когда захотел.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Crazy Alex , 30-Июл-19 13:29 
А если не хочешь - то всё равно морока. Собственно, это одна из причин появления крипты - то, что в банке, не особо получается считать "своими деньгами"

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 02-Авг-19 12:26 
А в крипте что получается? Как Главный Разработчик (и его команда), лицо проекта, решил - так все и приняли. Потому что пользоваться продуктом, который не имеет обновлений беспонтово, а обновления надо разрабатывать, и кроме Главного Разработчика заниматься этим никто не хочет. Весь опенсорс по этому принципу построен. Где теперь Etherium Classic?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Ordu , 28-Июл-19 22:13 
> Why?
> For fun. That's the entire reason. I moved from a C++ job to a Java job, and writing a decompiler seemed like a good way to learn the java ecosystem... - there's a lot of published material out there on coin, etc, but not a vast amount on what's going on with the bytecode...
> But... why java 6? This isn't 1996!
> Java 6 is still amazingly widely installed. Because CFR has its own implementations of all of the class file features / jls understanding, it doesn't actually need java 8 to understand java 8 features! (Though occasionally I find myself missing syntactic sugar!)

https://www.benf.org/other/cfr/faq.html

Любопытно, что он уже 6+ лет этим занимается, и ему ещё не надоело пилить это just for fun, причём судя по github'у в одно лицо. Потрясающе. Мало лишь кто так может.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено YetAnotherOnanym , 28-Июл-19 23:00 
Вот видишь, какое это сложное дело - "to learn the java ecosystem". Это не какие-то там месячные курсы вебкодинга.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 11:34 
>Кроме Minecraft ни одного сложного софта на Java не знаю.

Эталонный софт для сети I2P.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 11:43 
а как же любимый в постсовке l2j?
причем многие продают свои поделки без исходников и с привязкой к железу - вот там как раз сабж пригодится

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 13:19 
> Кроме Minecraft ни одного сложного софта на Java не знаю

Это характеризует скорее тебя, чем Java


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено maximnik0 , 29-Июл-19 22:38 
>Смысл? Кроме Minecraft ни одного сложного софта на Java не знаю.

Зайди на сайт НASA и удивись - управление многими аппаратами написано на яве, в свое время  гонял на эмуляторе первого марсохода, 400 мгб подкачки ,786 мгб озу,амд 750,  но работало и под линь и под винду, журнал CHIP выкладывал.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 21:48 
А есть на Java нормальный модуль, чтобы под web писать по типу Sinatra (у Ruby), без классов, наследования, dependency injection и прочей ерунды?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Kartoshka , 28-Июл-19 21:51 
Grails

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 22:13 
JRuby

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 22:17 
Если не хочешь "классов, наследования, dependency injection и прочей ерунды", то рекомендую оставаться и дальше на node.js. Java заточен под серьезные приложения, а не на твои однопоточные хелловорлды.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 28-Июл-19 23:18 
> Если не хочешь "классов, наследования, dependency injection и прочей ерунды", то рекомендую оставаться и дальше на node.js

Ну, во-первых в JavaScript есть классы, наследование и dependency injection. Накой только последний в статически типизируемом языке не понятно, наверное, чтобы ошибок в рантайме было больше.

> Java заточен под серьезные приложения, а не на твои однопоточные хелловорлды.

На многопоточные хеллоуворлды? На каждый запрос новый поток? Вы не из Atlassian случайно?


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 00:18 
> в JavaScript есть классы, наследование и dependency injection

Где тут в этом официальном[1] хелловорлде классы, наследования и dependency injection? --

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

> На каждый запрос новый поток?

Node.js bitchez dunno 'bout my thread poolz.

[1] https://web.archive.org/web/20130201004248/http://nodejs.org/


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 01:14 
> Где тут в этом официальном[1] хелловорлде классы, наследования и dependency injection?

А с чего ты взял, что я про официальную документацию к Node.js? И причем тут дока по Node.js, если мы говорим про JavaScript? Клоун.


> Node.js bitchez dunno 'bout my thread poolz.

Что сказать-то хотел?


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 01:47 
> причем тут дока по Node.js, если мы говорим про JavaScript?
>
> Клоун.

Спасибо, что подписываешься. Кстати, клован, а как ты собрался на __голом__ яваскрипте веб-сервер писать? Можешь конечно заврапить стд либу нодежс в самописной обертке, которая будет оформлена через "наследования" и DI ("говорим про JavaScript!111 В JavaScript наследования и DI бывают!11111!"), но сомневаюсь, что ты станешь этим заниматься.

> > thread poolz.
> Что сказать-то хотел?

Вот зачем тебе сложная Java, если ты и про такую уже достаточно старую технику, как thread pools, не слышал, раз считаешь, что многопоточное приложение обязательно будет выделять новый тред на каждый запрос? Оставайся лучше в понятном игрушечном node.js-мирке, где не придется думать о потоках, — будет примитивная кооперативная многозадачность как в MS DOS. Зато без страшных слов типа "наследование" и DI. (Хотя в JavaScript они и "бывают!11")


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Иваныч , 29-Июл-19 07:02 
Видимо об асинхронном I/O и возможности создавать асинхронные плагины на C++ где внутри для простоты можно в тот же Thread Pool и возвращать необходимые результаты в основном потоке Вы не догадываетесь.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 08:23 
> Видимо об асинхронном I/O <...> Вы не догадываетесь

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


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Иваныч , 29-Июл-19 20:54 
Вопрос интересный, но все же. Что Вы собираетесь делать сверхъестественного в обработчике на стороне JS? Переворачивать байты отсюда-туда? 95% веб-приложений это взять/положить в базу. Считать сложные вычисления тогда уж нужно из модуля на C++, банальщину оставить JS. Да есть старый добрый модуль Cluster где можно поднять по Instance на ядро, кто помнит CGI - прослезился. Не веб-разработчик, интересно было бы услышать о случаях где этот Ваш Энтерпрайз действительно нужен и мартышка с Node, PHP, Ruby не справится. В основном пишу на плюсах и не веб, просветите. Ворочял байты в Java - сомнительное удовольствие, от языка который не скрипт всегда ожидаю большего.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Crazy Alex , 30-Июл-19 18:58 
Как только "взять-положить в базу" оказывается сложной бизнес-логикой (да хоть бухгалтерия,  erp  и прочее) - резко появляется сверхъестественное. То есть, считай, любой корпоративный софт - они все сейчас на веб-морды поуходили.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Илья , 29-Июл-19 06:44 
> Накой только последний в статически типизируемом языке не понятно, наверное, чтобы ошибок в рантайме было больше.

Очень интересное мнение, можно подоробнее?


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено YetAnotherOnanym , 28-Июл-19 23:35 
А есть у Роллс-Ройса нормальная модель, без хрома, кожи, перегородки между водителем и пассажиром, вот этой дуры на капоте и прочей ерунды?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 01:18 
Ваи шашечки или ехать?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Минона , 29-Июл-19 08:16 
Да, называется Аурус.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 11:37 
Таврия

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Hewlett Packard , 29-Июл-19 16:22 
Была. МиГ-15.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено btrfs , 29-Июл-19 12:14 
Sparkjava, Javalin, Jooby

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено KonstantinB , 29-Июл-19 17:33 
Писать на Java без классов - это интересное желание. Еще, пожалуйста, пчел без меда и водку без спирта.

Что касается поменьше бойлерплейта и побольше дела - www.playframework.com


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено kmeaw , 28-Июл-19 22:24 
Неплохой метрикой для такого рода программ оказалось бы похожесть результата применения декомпилятора к скомпилированной версии самого себя против истинного исходного кода.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено A.Stahl , 29-Июл-19 07:46 
И? К чему ты это? Хочешь сказать что сейчас оценивают как-то иначе (ну кроме нюанаса "самого себя". Я не понимаю в чём ценность этого уточнения)?



"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Аноним , 29-Июл-19 12:10 
>истинного исходного кода

Истинный исходник лежит на гитхаб. Если там бекдоров нет - то и в программе нет.


"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено jj , 29-Июл-19 00:35 
В чём отличие от JD-Core и FernFlower?

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено Anonim , 29-Июл-19 01:04 
JD-Core - gpl. А сабж mit.

"Выпуск CFR 0.146, декомпилятора для языка Java"
Отправлено VasiliyLovov , 30-Июл-19 22:34 
> JD-Core - gpl. А сабж mit.

Да тут надо смотреть еще.