BlackBerry 用の Java ソフトウェアを作成した場合、 .NET Reflectorのような無料で入手できるツールを使用して逆コンパイルできますか? それとも、より複雑なプロセスですか?
8 に答える
任意の言語、任意のプラットフォーム向けに作成したソフトウェアは、逆コンパイルできます。どのコード マングリング (難読化) ツールを使用しても、逆コンパイルできます。
これについて心配しようとする試みは、時間の無駄になります。DRMのように;p
しかし、本当のポイントは、非常に良かったので、私が考えている議論へのリンクがあればいいのにと思います. しかし、ポイントはこれです。誰かがそれを逆コンパイルすることができ、もし彼らがただそれを再コンパイルして再販しようとするなら、それは何の意味があるでしょうか? 彼らを法廷に連れて行き、勝つことはまだ簡単です。
しかし、あなたは「彼らは私のコードを見て、私がどのようにそれを行ったかを理解し、それをやり直すことができる!」と言います。これに対して私は言います。
Windows のソース コードを手に入れることができるかどうか考えてみてください。「彼らはここで何をしているのか」がたくさんあるでしょうか?そして、「私は違うことをしただろう」. あごを引っ掻いて「わあ、いいね」となる瞬間。しかし、結局のところ、それはあなたが自分で到達しなかったものではありません. 真の価値は、彼らが問題を真に理解し、解決策を考え出すのに費やした時間です。
あなたのコードを盗む人は、そんなことはしません。何が難しいですか?新しいソフトウェアを書いたり、ソフトウェアを保守したりしますか? ほとんどの開発者は前者を好むと思います。
つまり、誰かがあなたのソフトウェアを逆コンパイルし、あなたが簡単に起訴できるような明白な方法でそれを販売するか、時間をかけて問題を完全に包み込み、最終的に (数年後?) 完全にあなたのものとは異なります。
これは非常にばかげたシナリオです。誰かが競合製品を逆コンパイルして製品を盗んだ場合、私は本当に傷つきます。
誰かがあなたのコードを「盗む」ことを心配する必要はありません。それは可能であり、それを防ぐためにできることは何もありませんが、ばかげているため、実行されません。
RIM の RAPC ツールは、標準の J2ME .jar ファイルを .cod ファイルに変換します。これは独自の形式であり、詳細は公開されていません。知られているのは、.cod ファイルのサイズが .jar ファイルのサイズよりも小さく、多くのものが取り除かれることです (基本的に、静的コンテキストから到達できないものはすべて)。
.cod ファイルが十分に大きくなると (より正確には、コードまたはデータのサイズが十分に大きくなると)、RAPC は .cod を 2 つ以上の個別の cod (CODNAME-2.cod などの名前) に分割し、それらを圧縮して圧縮します。 .zip の名前を .cod に変更します。これを解凍することはできますが、逆コンパイルできない .cod ファイルがたくさん残っています。
したがって、一般的に、BlackBerry アプリケーション ファイルを逆コンパイルすることはできません。.cod ファイルを逆コンパイルできると主張するcoddecというツールがありますが、うまくいきませんでした。
Java コードは簡単に逆コンパイルできます。コードの保護に関心がある場合は、Java Me の難読化ツールを検索してください。特にこれを確認してください。
ただし、なぜ気にしてはいけないのかについての Adam のコメントも考慮に入れる必要があります。
RIM のツールチェーンは、オプティマイザー (rapc) を介してコードを実行するため、標準のバイトコードよりも逆コンパイルが難しくなります。誰かが特に逆コンパイルするために多くの時間を費やしていない限り、それはほとんどありません。
純粋な J2ME と Sun のコンパイラを使用して Midlet を作成すると、結果のバイトコードは簡単に逆コンパイルできます。(私がこれをやったことがないというわけではありません:P)。ただし、RIM の BlackBerry JDE と RAPC Compiler を使用すると、バイトコードは独自の文書化されていない形式になり、誰かがそれを逆コンパイルしたり、コードを理解したりすることは非常に困難になります。
ただし、アプリケーションでハードコードされた文字列を見つけることは常に可能であるため、TripeDES キーなどをハードコードしたくないことに注意してください。
はい、理論的には可能です。本質的にはJavaバイトコードだからです。ただ、前回(2年前)BB開発をした時は、実はかなり大変でした。
ほとんどすべてのソフトウェアを逆コンパイルできます。問題は、それを実現するために必要な関与とリソースの量だけです。
Java クラスの JAD が好きです - http://www.kpdus.com/jad.html。
上記の感情を反映して、人々があなたのコードを盗むことを心配しないでください。
逆コンパイルに関する私のお気に入りの 2 つの点:
コンパイラがコードをどのように扱うかを学びます。たとえば、文字列の連結が StringBuilder クラスによって処理されることを確認できます。または、従来の "for (int i=0, i
製品を実際に学習して拡張することができます。Microsoft OCS2007 Speech Server を使用しました。アセンブリの一部を逆コンパイルすることで、製品について多くのことを学びました。また、ニーズに合わせていくつかの基本的なツールを拡張しました。