Comments 39
Традиционно — буду рад ответить на вопросы про dotPeek (ну и ReSharper до кучи) тут, в комментариях :-)
Вопрос не ради холивара, а по профессиональной необходимости: для Java в вашей компании что-то такое есть?
«Что-то такое» — это вы про Java-декомпиляцию? Если да, то подобных продуктов у нас нет (насколько мне известно).
А вообще для Java у нас есть наша собственная IDE — IntelliJ IDEA.
А вообще для Java у нас есть наша собственная IDE — IntelliJ IDEA.
А планируете сделать Java-декомпилятор?
Ну и Android-декомпилятор до кучи.
Ну и Android-декомпилятор до кучи.
Так, я тут обратился за помощью к IDEA-коллегам, и получил примерно такой ответ:
Планов на подобные вещи с нашей стороны пока что нет, но есть сторонние плагины для декомпиляции Java
А вот, что я нашел в IDEA-репозитории: plugins.jetbrains.com/plugin/7100?pr=idea_ce
Надеюсь, поможет-пригодится.
Планов на подобные вещи с нашей стороны пока что нет, но есть сторонние плагины для декомпиляции Java
А вот, что я нашел в IDEA-репозитории: plugins.jetbrains.com/plugin/7100?pr=idea_ce
Надеюсь, поможет-пригодится.
Как это — до кучи? У них байт-код разный.
А вообще да, не хватает тулзы хака андроид-программ.
Связка dex2jar+jdgui глючная донельзя и часто просто декомпилит некорректно.
А вообще да, не хватает тулзы хака андроид-программ.
Связка dex2jar+jdgui глючная донельзя и часто просто декомпилит некорректно.
Про декомиляцию естественно. Просто с ростом разных «современных» проектов библиотек, растет и число ошибок в них. Очень ценно было бы создание быстрых патчей на уровне байт-кода. Ну или хотя бы среды в которой можно посмотреть, что конкретно скомпилировано в данный JAR-ник, потому как автор не очень дружит с мейвеном или другой организацией распространения исходников.
А планируется ли отображение IL кода декомпилированного?
Да, планируется — ниже ответили.
К сожалению, иногда читаемость кода на выходе по-прежнему значительно уступает рефлектору.
Кусок метода SubtitleImage.CreateSubtitleArray из проекта SupRip,
Пожалуй, главный (единственный?) недостаток в проекте для меня.
Спасибо за Go to Everything, удобно иметь его и здесь.
Кусок метода SubtitleImage.CreateSubtitleArray из проекта SupRip,
Как его выдает Reflector
for (int i = 0; i < this.subtitleBitmap.Size.Height; i++)
{
for (int j = 0; j < this.subtitleBitmap.Size.Width; j++)
{
byte num4 = (byte) ((((destination[num++] + destination[num++]) + destination[num++]) * destination[num++]) / 0x300);
if (num4 < 30)
{
this.subtitleArray[i, j] = 0;
}
else
{
this.subtitleArray[i, j] = num4;
}
}
}
И как dotPeek 1.1
for (int index1 = 0; index1 < this.subtitleBitmap.Size.Height; ++index1)
{
for (int index2 = 0; index2 < this.subtitleBitmap.Size.Width; ++index2)
{
byte[] numArray1 = destination;
int index3 = num1;
int num2 = 1;
int num3 = index3 + num2;
int num4 = (int) numArray1[index3];
byte[] numArray2 = destination;
int index4 = num3;
int num5 = 1;
int num6 = index4 + num5;
int num7 = (int) numArray2[index4];
int num8 = num4 + num7;
byte[] numArray3 = destination;
int index5 = num6;
int num9 = 1;
int num10 = index5 + num9;
int num11 = (int) numArray3[index5];
int num12 = num8 + num11;
byte[] numArray4 = destination;
int index6 = num10;
int num13 = 1;
num1 = index6 + num13;
int num14 = (int) numArray4[index6];
byte num15 = (byte) (num12 * num14 / 768);
this.subtitleArray[index1, index2] = (int) num15 >= 30 ? num15 : (byte) 0;
}
}
Пожалуй, главный (единственный?) недостаток в проекте для меня.
Спасибо за Go to Everything, удобно иметь его и здесь.
Большое спасибо! Я завел issue в YouTrack по этому поводу: youtrack.jetbrains.com/issue/DOTP-5719
Согласен. Попробовал на своем проекте. Самые часто встречаемые проблемы — это огромное количество избыточных операций приведения типов (особенно в случае с лямбдами) и отсутствие распознавания extension-методов. Также обратил внимание на повсеместное явное использование
С нетерпернием жду новой версии :)
this
при обращении к экземплярным полям — но это мелочи.С нетерпернием жду новой версии :)
А вы не могли бы попробовать еще и последний ILSpy? (придется собрать из исходников на github).
Интересно сравнить с dotPeek и Reflector.
Интересно сравнить с dotPeek и Reflector.
Клёво, да
for (int i = 0; i < this.subtitleBitmap.Size.Height; i++)
{
for (int j = 0; j < this.subtitleBitmap.Size.Width; j++)
{
byte b = (byte)((int)((array[num++] + array[num++] + array[num++]) * array[num++]) / 768);
if (b < 30)
{
this.subtitleArray[i, j] = 0;
}
else
{
this.subtitleArray[i, j] = b;
}
}
}
Спасибо за наводку на проект, не знал о нем.
А вы не могли бы ещё сравнить с Telerik's JustDecompile?
Да без проблем
for (int i = 0; i < this.subtitleBitmap.Size.Height; i++)
{
for (int j = 0; j < this.subtitleBitmap.Size.Width; j++)
{
int num1 = num;
num = num1 + 1;
int num2 = num;
num = num2 + 1;
int num3 = num;
num = num3 + 1;
int num4 = num;
num = num4 + 1;
byte num5 = (byte)((numArray[num1] + numArray[num2] + numArray[num3]) * numArray[num4] / 768);
if (num5 >= 30)
{
this.subtitleArray[i, j] = num5;
}
else
{
this.subtitleArray[i, j] = 0;
}
}
}
Лично мне версия от ILSpy понравилась больше всех.
Он доступен и в качестве инсталлятора ))
А планируется ли поддержка отображения IL кода в dotPeek? Reflector очень удобен тем, что можно переключаться между декомпилированным кодом и его IL-эквивалентом.
Кстати, да. Приходится грузить ILSpy для этих целей )
Да, планируется.
Отлично! А не подскажете, есть какие-нибудь примерные планы по срокам на эту задачу? Сколько осталось ждать до получения этой прекрасной функциональности? А то issue лежит в системе уже два года…
декомпилировал сам dotPeek, получив солюшен )) Чувствую себя злым гением ))
Очень приятная фича Reflector — отладка по декомпиленым исходникам. Нету ли планов реализовать это в dotPeek/ReSharper?
Я понимаю что Вы не связанны с отделом маркетинга, но всё же:
Планируются ли в скором времени какие-то распродажи и акции? А то я уже довольно давно с грустью поглядываю на ваши PhpStorm и IntelliJ IDEA (я пользуюсь комьюнити едишн, но хотел-бы вас поддержать купив лицензию)
Увы цены как для скромного сотрудника колледжа(трудовой я записан как инженер-электронщик, хотя и имею часы) не подьёмные.
Планируются ли в скором времени какие-то распродажи и акции? А то я уже довольно давно с грустью поглядываю на ваши PhpStorm и IntelliJ IDEA (я пользуюсь комьюнити едишн, но хотел-бы вас поддержать купив лицензию)
Увы цены как для скромного сотрудника колледжа(трудовой я записан как инженер-электронщик, хотя и имею часы) не подьёмные.
У JB пару раз в год какая-нибудь фишка с дикой скидкой точно бывает + бесплатные лицензии для open-source некоммерческих проектов, емнип.
Ну их требованиям опен-сорс я не соответствую, програмирую в основном Just For Fun. Вот о такого рода акции я и спрашиваю, т.к. уже довольно давно её жду и жалею что на прошлой не скупился. Если нет — попробую подать запрос на академическую лицензию, но всё портит то что основная должность у меня — инженер :(
Здравствуйте!
Забавно, но я имею самое непосредственное отношение к маркетингу: я один из marketing lead-ов в JetBrains )
Отвечая на ваш вопрос, серьезные распродажи в ближайшее время не планируются (ну а если бы и планировались, мы бы об этом разве что намекали, да и то только за несколько дней до). Мы с ними несколько переборщили за последний год, хотелось бы перевести дух.
Сейчас действует 10% скидка на персональные лицензии IntelliJ IDEA, но серьезной распродажей я бы это не назвал — скорее способ пощупать эластичность спроса с очередной стороны.
Это были плохие новости. Теперь хорошие.
Если посмотреть на лицензионные соглашения на PhpStorm и IntelliJ IDEA, то там есть параграф 1b, который гласит:
Обратите внимание на cловосочетание «staff member» — даже выступая в роли инженера, а не преподавателя, вы вполне можете быть лицензиатом по академическому соглашению. При этом, как следует из дальнейшего текста соглашения, лицензия должна использоваться в некоммерческих целях, но это, как я понимаю, также выполнимое для вас условие.
Поэтому я не вижу никаких препятствий для подачи заявок на академические лицензии с вашей стороны.
И еще: большое спасибо, что хотите нас поддержать. Это важно и приятно. Правда.
Забавно, но я имею самое непосредственное отношение к маркетингу: я один из marketing lead-ов в JetBrains )
Отвечая на ваш вопрос, серьезные распродажи в ближайшее время не планируются (ну а если бы и планировались, мы бы об этом разве что намекали, да и то только за несколько дней до). Мы с ними несколько переборщили за последний год, хотелось бы перевести дух.
Сейчас действует 10% скидка на персональные лицензии IntelliJ IDEA, но серьезной распродажей я бы это не назвал — скорее способ пощупать эластичность спроса с очередной стороны.
Это были плохие новости. Теперь хорошие.
Если посмотреть на лицензионные соглашения на PhpStorm и IntelliJ IDEA, то там есть параграф 1b, который гласит:
(b) «Licensee» means (i) the individual who is a student, faculty or staff member at an educational institution, or (ii) the educational institution specified in the License Certificate. For purposes of this definition, «educational institution» means a public or private school, college, university and other post secondary educational establishment.
Обратите внимание на cловосочетание «staff member» — даже выступая в роли инженера, а не преподавателя, вы вполне можете быть лицензиатом по академическому соглашению. При этом, как следует из дальнейшего текста соглашения, лицензия должна использоваться в некоммерческих целях, но это, как я понимаю, также выполнимое для вас условие.
Поэтому я не вижу никаких препятствий для подачи заявок на академические лицензии с вашей стороны.
И еще: большое спасибо, что хотите нас поддержать. Это важно и приятно. Правда.
Немного не в тему, но я не могу удержаться. Когда JetBrains объявит, ну хоть примерную, дату релиза С++ IDE?
Да, постараемся сделать сами или интегрироваться. Если хотите, проголосуйте за соответствующий реквест.
Sign up to leave a comment.
dotPeek 1.1: обновление бесплатного декомпилятора от JetBrains