Можно ли декомпилировать файлы BlackBerry COD или ALX?

Если я напишу программное обеспечение Java для BlackBerry, можно ли его декомпилировать с помощью свободно доступных инструментов, подобных .NET Рефлектор, или это более сложный процесс?


person Blankman    schedule 18.12.2008    source источник


Ответы (8)


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

Любая попытка побеспокоиться об этом будет пустой тратой времени. Так же, как DRM; p

Но суть в том, и мне жаль, что у меня не было ссылки на обсуждение, о котором я думаю, потому что оно было очень хорошим. Но суть в следующем. Кто-то может его декомпилировать, и если они просто перекомпилируют его и попытаются перепродать, в чем был смысл? Их по-прежнему легко подать в суд и выиграть.

Но вы говорите: «Они могут взглянуть на мой код, выяснить, как я это сделал, и переделать его!». И на это я говорю: не обольщайся.

Подумайте, сможете ли вы достать исходный код Windows. Было бы много «Чего они здесь делают»? И «мальчик, я бы поступил иначе». Несколько моментов, когда вы почесываете подбородок и говорите: «Вау, хорошо». Но в общем, это то, к чему вы бы не пришли в одиночку. Настоящая ценность - это время, которое они потратили на то, чтобы по-настоящему осознать проблему и найти решение.

Любой, кто срывает ваш код, этого делать не будет. Что сложнее? написание нового программного обеспечения или обслуживание программного обеспечения? Я думаю, что большинство разработчиков предпочли бы первое.

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

Это просто такой нелепый сценарий, я действительно удивляюсь, если кто-то сорвал продукт, декомпилировав конкурирующий продукт.

Не беспокойтесь о том, что кто-то «украдет» ваш код. Это МОЖНО сделать, и вы ничего не можете сделать, чтобы предотвратить это, но это не будет сделано, потому что это нелепо.

person Adam    schedule 18.12.2008
comment
Замечательный комментарий! Я помню, как разговаривал с парнем, чей стартап обанкротился, и он спрашивал меня о протирании дисков, чтобы они не могли использовать его код. Мне нравится, чувак, ТЫ не мог продать свой код, и ты его написал. Проблема не в воровстве кода ... - person Dan Rosenstark; 18.12.2008
comment
Это ужасный ответ. Хороший декомпилятор java может очень и очень легко восстановить простые в использовании исходные результаты. Простое использование качественного обфускатора, такого как Proguard, может настолько усложнить задачу, что вряд ли стоит затраченных усилий. Если ваш исходный код содержит коммерческую тайну, и он написан на java, его можно легко декомпилировать, и вам следует использовать обфускатор. - person Simon Woodside; 06.05.2010
comment
Это не отвечает на исходный вопрос - есть ли бесплатные инструменты для декомпиляции кода приложения Blackberry? - person Michael Donohue; 24.10.2010

Инструмент RAPC от RIM преобразует стандартные файлы J2ME .jar в файлы .cod - это частный формат, подробности о нем не публиковались. Что известно, так это то, что размеры файлов .cod меньше, чем размеры файлов .jar, и многие вещи удаляются (в основном, все, что недоступно из статического контекста).

Обратите внимание, что когда файлы .cod становятся достаточно большими (или, точнее, когда их код или размеры данных становятся достаточно большими), RAPC разбивает .cod на 2 или более отдельных кодов (с именем CODNAME-2.cod и т. Д.), Сжимает их и переименовывает .zip в .cod. Вы можете разархивировать это, но у вас по-прежнему остается куча файлов .cod, которые вы не можете декомпилировать.

В общем, декомпилировать файлы приложения BlackBerry нельзя. Есть инструмент под названием coddec, который утверждает, что может декомпилировать .cod файлы, но мне с этим не повезло.

person Anthony Rizk    schedule 13.01.2009
comment
Я добился некоторого прогресса с coddec, применив патч от dontstuffbeansupyournose. com / 2009/01/07 / и немного подправили обработку командной строки, чтобы не зависеть от местоположения. - person Michael Donohue; 24.10.2010

Код Java легко декомпилировать. Поищите обфускаторы для Java Me, если вы заинтересованы в защите своего кода. В частности, проверьте это.

Однако следует также принять во внимание комментарий Адама о том, почему вам не стоит беспокоиться.

person Dan Rosenstark    schedule 18.12.2008

Цепочка инструментов RIM также запускает ваш код через оптимизатор (rapc), что делает его даже трудным для декомпиляции, чем стандартный байт-код. Если только кто-то не потратил много времени специально на его декомпиляцию, это маловероятно.

person staktrace    schedule 20.12.2008

Если вы напишете мидлет с использованием чистого J2ME и компилятора Sun, полученный байт-код можно легко декомпилировать. (Не то, чтобы я когда-либо делал это: P). Однако, если вы используете RIM BlackBerry JDE и его RAPC Compiler, ваш байт-код будет в проприетарном, недокументированном формате, и кому-то действительно сложно декомпилировать его или разобраться в вашем коде.

Однако имейте в виду, что всегда можно найти жестко запрограммированные строки в приложении, поэтому вам не нужно жестко кодировать свой ключ TripeDES или что-то в этом роде.

person Jan Gressmann    schedule 23.12.2008

Практически все программное обеспечение можно декомпилировать. Вопрос только в количестве вовлеченности и ресурсов, необходимых для этого.

person Joachim Sauer    schedule 18.12.2008

Да, теоретически может, поскольку по сути это всего лишь байт-код Java. Однако в последний раз, когда я занимался разработкой BB (2 года назад), на практике это было довольно сложно.

person Eli    schedule 18.12.2008

Мне нравится JAD для классов Java - http://www.kpdus.com/jad.html .

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

Две мои любимые вещи в декомпиляции:

  1. You learn how the compiler treats your code. For example, you can verify that string concatenation is handled by the StringBuilder class. Or, you may uncover some thought-provoking "for" statements beyond the traditional "for (int i=0, i

  2. You can really learn a product and extend it. I've used Microsoft OCS2007 Speech Server. I learned a lot about the product be decompiling some of their assemblies. I also extended some of the basic tools to fit my needs.

person ericp    schedule 23.12.2008