Можно ли декомпилировать файлы BlackBerry COD или ALX? - PullRequest
6 голосов
/ 18 декабря 2008

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

Ответы [ 8 ]

16 голосов
/ 18 декабря 2008

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

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

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

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

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

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

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

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

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

10 голосов
/ 13 января 2009

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

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

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

4 голосов
/ 18 декабря 2008

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

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

3 голосов
/ 20 декабря 2008

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

1 голос
/ 23 декабря 2008

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

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

0 голосов
/ 23 декабря 2008

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

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

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

  1. Вы узнаете, как компилятор обрабатывает ваш код. Например, вы можете проверить, что конкатенация строк обрабатывается классом StringBuilder. Или вы можете обнаружить некоторые заставляющие задуматься высказывания «за», выходящие за рамки традиционного »для (int i = 0, i

  2. Вы действительно можете изучить продукт и расширить его. Я использовал Microsoft OCS2007 Speech Server. Я многое узнал о продукте, декомпилируя некоторые из их сборок. Я также расширил некоторые основные инструменты, чтобы соответствовать моим потребностям.

0 голосов
/ 18 декабря 2008

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

0 голосов
/ 18 декабря 2008

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

...