Если я напишу программное обеспечение Java для BlackBerry, можно ли его декомпилировать с помощью свободно доступных инструментов, подобных .NET Рефлектор, или это более сложный процесс?
Можно ли декомпилировать файлы BlackBerry COD или ALX?
Ответы (8)
Программное обеспечение, которое вы пишете для любого языка и любой платформы, можно декомпилировать. Неважно, какие инструменты искажения (обфускации) кода вы используете, его можно декомпилировать.
Любая попытка побеспокоиться об этом будет пустой тратой времени. Так же, как DRM; p
Но суть в том, и мне жаль, что у меня не было ссылки на обсуждение, о котором я думаю, потому что оно было очень хорошим. Но суть в следующем. Кто-то может его декомпилировать, и если они просто перекомпилируют его и попытаются перепродать, в чем был смысл? Их по-прежнему легко подать в суд и выиграть.
Но вы говорите: «Они могут взглянуть на мой код, выяснить, как я это сделал, и переделать его!». И на это я говорю: не обольщайся.
Подумайте, сможете ли вы достать исходный код Windows. Было бы много «Чего они здесь делают»? И «мальчик, я бы поступил иначе». Несколько моментов, когда вы почесываете подбородок и говорите: «Вау, хорошо». Но в общем, это то, к чему вы бы не пришли в одиночку. Настоящая ценность - это время, которое они потратили на то, чтобы по-настоящему осознать проблему и найти решение.
Любой, кто срывает ваш код, этого делать не будет. Что сложнее? написание нового программного обеспечения или обслуживание программного обеспечения? Я думаю, что большинство разработчиков предпочли бы первое.
Итак, кто-то декомпилирует ваше программное обеспечение и либо продает его таким очевидным образом, что вы можете легко привлечь к ответственности, либо он находит время, чтобы полностью осознать проблемы и разработать свои собственные, которые в конце (годы спустя?), Вероятно, полностью исчезнут. отличается от вашего.
Это просто такой нелепый сценарий, я действительно удивляюсь, если кто-то сорвал продукт, декомпилировав конкурирующий продукт.
Не беспокойтесь о том, что кто-то «украдет» ваш код. Это МОЖНО сделать, и вы ничего не можете сделать, чтобы предотвратить это, но это не будет сделано, потому что это нелепо.
Инструмент RAPC от RIM преобразует стандартные файлы J2ME .jar в файлы .cod - это частный формат, подробности о нем не публиковались. Что известно, так это то, что размеры файлов .cod меньше, чем размеры файлов .jar, и многие вещи удаляются (в основном, все, что недоступно из статического контекста).
Обратите внимание, что когда файлы .cod становятся достаточно большими (или, точнее, когда их код или размеры данных становятся достаточно большими), RAPC разбивает .cod на 2 или более отдельных кодов (с именем CODNAME-2.cod и т. Д.), Сжимает их и переименовывает .zip в .cod. Вы можете разархивировать это, но у вас по-прежнему остается куча файлов .cod, которые вы не можете декомпилировать.
В общем, декомпилировать файлы приложения BlackBerry нельзя. Есть инструмент под названием coddec, который утверждает, что может декомпилировать .cod файлы, но мне с этим не повезло.
Код Java легко декомпилировать. Поищите обфускаторы для Java Me, если вы заинтересованы в защите своего кода. В частности, проверьте это.
Однако следует также принять во внимание комментарий Адама о том, почему вам не стоит беспокоиться.
Цепочка инструментов RIM также запускает ваш код через оптимизатор (rapc), что делает его даже трудным для декомпиляции, чем стандартный байт-код. Если только кто-то не потратил много времени специально на его декомпиляцию, это маловероятно.
Если вы напишете мидлет с использованием чистого J2ME и компилятора Sun, полученный байт-код можно легко декомпилировать. (Не то, чтобы я когда-либо делал это: P). Однако, если вы используете RIM BlackBerry JDE и его RAPC Compiler, ваш байт-код будет в проприетарном, недокументированном формате, и кому-то действительно сложно декомпилировать его или разобраться в вашем коде.
Однако имейте в виду, что всегда можно найти жестко запрограммированные строки в приложении, поэтому вам не нужно жестко кодировать свой ключ TripeDES или что-то в этом роде.
Практически все программное обеспечение можно декомпилировать. Вопрос только в количестве вовлеченности и ресурсов, необходимых для этого.
Да, теоретически может, поскольку по сути это всего лишь байт-код Java. Однако в последний раз, когда я занимался разработкой BB (2 года назад), на практике это было довольно сложно.
Мне нравится JAD для классов Java - http://www.kpdus.com/jad.html .
Вторя вышесказанному - не беспокойтесь о том, что люди украдут ваш код.
Две мои любимые вещи в декомпиляции:
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
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.