20

重複の可能性:
ソフトウェアを違法な配布からどのように保護しますか?
ソフトウェアのコピーを防ぐためのベストプラクティス

仮定の状況:

私がソフトウェア製品をゼロから構築し、それが素晴らしいことをしているとしましょう。唯一の問題は、誰かがコードを見ると、それを非常に簡単に理解し、自分で簡単に構築できることです。

さて、私は100%ゼロからコードを作成し、API呼び出しを組み合わせて使用​​しています。他の誰もコードの開発に関与していません。

この製品を販売したい場合、私よりもはるかに賢い人がすべてをリバースエンジニアリングして、より良い製品を思い付くという保証は何ですか?

今、私はコード全体を断片化することを考えています。たくさんの冗長なコードとたくさんのコメントを追加します。

ソフトウェアコードを暗号化して、デバッグ、トラブルシューティング、およびコードの動作の理解を事実上不可能にするソフトウェアはありますか?まだいつものように実行しますか?開発者が安心できるように?

4

13 に答える 13

27

プログラムの中で本当に斬新なものはほとんどありません。あなたがあなたのコードに入れる可能性のあるほとんどすべてのもの、他の誰かが自分で発明することができます。一般的に、彼らがあなたのコードを読むことによってそれを学ぶことができるよりも簡単です。コードを読むことはそれを書くことよりも難しいです、そしてほとんどのプログラマーはとにかくそれをするのが本当に好きではありません。

そのため、彼らはあなたのアプリを見て「私はそれができる」と考え、次に「それは素晴らしい。そのコードを読んでからコピーする」と考える可能性がはるかに高くなります。彼らがそれを理解していても、あなたはまだ著作権を所有しているでしょう、あなたはまだ最初に市場に出ます。

忘れておくことをお勧めします。

于 2010-03-03T00:54:07.510 に答える
6

誰かがコードを見れば、非常に簡単に理解でき、自分で簡単に構築できます。

だから誰にもソースコードを渡さないでください。

私がこの製品を販売したい場合、私よりもはるかに賢い誰かが全体をリバース エンジニアリングして、より良い製品を考え出すという保証は何ですか?

(a) では、今すぐ販売を開始して、市場を獲得してください。リバース エンジニアリングには時間がかかりますが、その間に市場と「マインド シェア」を獲得します。(b) ライセンス契約に、リバース エンジニアリングを禁止する条項を入れる。(c) 製品を受け取るすべての人が同意書に署名していることを確認してください。

現在、コード全体を断片化することを考えています。多くの冗長なコードと大量のコメントを追加します。

これは、ソース コードを配布する場合にのみ意味があります。その場合、誰もリバース エンジニアリングを行う必要さえありません。彼らはあなたのソースコードを持っています。彼らにそれを与えないでください。

何かソフトはありますか...

この仕事をすることを目的としたソフトウェアはたくさんあります。ただし、これはビジネス上の問題に対する技術的な解決策です。すべてのソフトウェアはリバース エンジニアリングされる可能性があります。これは、ある時点ですべてを解読し、CPU が理解できるように難読化を解除する必要があるためです。その時点で、それは本質的に平文です。したがって、技術的な解決策は正式にはありません (改ざん防止 HSM で実行されるコードのようなものを除けば)。

ビジネスの損失を防ぐために使用できる別のビジネス メカニズムがあることを付け加えておきます。それが、価格です。ライセンシーがコピーを高く評価し、検査を許可しないほど価格を高く設定するか、またはリバース エンジニアリングが実行不可能なほど低くする。または無料にして、サポート契約でお金を稼ぎましょう。

于 2010-03-03T01:12:17.260 に答える
4

実際にそのようなコードベースを作成するための知識と経験を積むと、難読化がカジュアルな IP 侵害を抑止することを意図していることは明らかです。

あなたのコードを知りたい人は、あなたのコードを知っているでしょう。

それが金銭的損失の問題になる場合、裁判所はあなたの保護です。

それがどのように機能するかです。

于 2010-03-03T00:57:08.710 に答える
3

誰かがいつでもあなたのコードを理解して解決することができます。コードにたどり着く方法がない場合は、システムを使用するだけでも、誰かがプロセスを複製できるようになります。

例:水差しを取り、背中を他の人に向けてカップに注ぎます。この他の人は、水と重力が物を他の容器に落とすのに優れていることを知っているので、水差しを持ち上げて重力(API呼び出し)を有利に機能させるプロセスを実行できます。彼らはあなたがあなたの前腕でどの角度を使用したか、そしてあなたが使用した非常に卑劣なカップ保持技術を正確に知らないかもしれませんが、彼らは同じプロセスを複製し、時間をかけてそれを改善することができます。

tl; dr:コードを保護することはできません。

于 2010-03-03T00:54:17.137 に答える
3

やるべきことは、競争相手があなたの現在のものをリバースエンジニアリングしている間に、さらに素晴らしいものを発明することです. それはイノベーションによる競争と呼ばれます。

于 2010-03-03T00:58:31.450 に答える
3

私は弁護士ではありません

あなたがそれについて本当に心配しているなら、それにお金を投資しても構わないと思っているなら、あなたのコードを(難読化や暗号化のような合理的なものを超えて)保護するのではなく、あなたのアイデアと芸術の特許を取得してください. その後、誰かがそれを受け取り、リバース エンジニアリングを行い、あなたのプロセスに基づいてより良いプロセスを作成した場合、あなたにはお金を得る法的根拠があります。

彼らがあなたのアイデアを採用したことを証明することを含め、あなたがしなければならないことはたくさんありますが(これは簡単ではありません)、これが世界の飢餓とすべての人文科学の問題に対する解決策であるなら、それはやるべきことです.

マイナス面については、私は推測しますが、おそらくあなたの方法は次のように90%正しいでしょう:

  1. さまざまな理由で特許を取得できません (すでに特許を取得しているアイデアの数と、オリジナルのアートを特定するのがいかに難しいかに驚きました)
  2. 新しくない、またはユニークではない(つまり、すでに確立されたアートがある)
  3. 費用が利益をはるかに上回るため、特許を取得する価値はありません

知的財産弁護士は確かにあなたに言うことができ、相談の費用はそれほど多くありません. 全体として、コードを隠すために多くの時間を費やすよりも、彼らに相談する方が安上がりです。

幸運を。

于 2010-03-03T01:01:59.583 に答える
2

気にしないでください。あなたのコードが本当に「素晴らしいことをする」なら、それがハッキングされることを確信してください。そして、それは好奇心のためだけです。

于 2010-03-03T00:54:14.783 に答える
2

コードをリバース エンジニアリングから 100% 保護する方法はありません。私たちはどの言語について話しているのですか?これが C/C++ の場合、リバース エンジニアリングはかなり難しく、デバッグ情報などから削除することもできます。しかし、これがたとえば Java の場合、コードを難読化しても、いくつかのかなりクールなツールがあります ( JADなど) 。とにかく、それはあなたの仕事の多くを明らかにします。

このすべてにもかかわらず、私はあなたの態度を変えるように努めるべきだと思います. 大企業は単純なソリューションに多額の費用を支払っていますが、今日ではソフトウェアではなくサービスが最も重要であるように思われます (オープン ソフトウェア ベースの企業の成功はこのためです)。したがって、優れたソフトウェアを持っている場合は、誰かがそれを盗むことを恐れず、それをうまく売る方法を考えてください。

于 2010-03-03T00:57:49.813 に答える
2

ソフトウェア コードを暗号化して、デバッグ、トラブルシューティング、およびコードの動作の理解を事実上不可能にするソフトウェアはありますか? それでも通常どおり実行されますか?開発者が安心できるように?

これは完全に間違った考え方です。バスにひかれたらどうする?あなたの会社は倒産しますか?火事ですべてのデータが失われますか? 顧客一人一人にとって、ソフトウェアへの投資の価値は低下し、最終的にはゼロになります。ソフトウェアの開発やトラブルシューティングは、あなたがいなければそれ以上できないからです。私はそのように多くのお金が浪費されているのを見てきましたが、それは恐ろしいビジネスモデルだと思います.

私は自分でソフトウェアを作ることで生計を立てているので、それで生計を立てることの大変さを知っています。それでも、難読化は今日ではうまくいきません。顧客に厳格なライセンス契約を課し、彼らを怖がらせて、ソフトウェアの再配布について考えることさえしないようにします

于 2010-03-03T01:04:12.267 に答える
0

これは無駄です。あなたより賢い人が常にいるので、彼らはあなたの難読化をリバースエンジニアリングすることができます。

于 2010-03-03T00:53:32.380 に答える
0

通常、あなたのコードをハッキングして有意義な方法で使用するのに十分賢い人は、自分でそれを行うのに十分賢く、おそらくあなたよりもうまくできると考えているので、わざわざあなたのものを盗むことはありません.

あなたのコードをハッキングできても、それを有意義に利用できない人々について心配する必要はありません。あなたが良い仕事をした場合、これはあなたがした仕事の質を強化するだけです(すべてのくだらないタッチスクリーン電話の模倣者を考えてください).

于 2010-03-03T01:00:15.387 に答える
0

彼らはあなたのコードをリバースエンジニアリングしようとしています。彼らを止めることはできません. あなたができる唯一のことは、それを難し​​くすることです. これは、PHP や Javascript などの継承的に「オープン」なコードを難読化することから、自己変更のがらくたの負荷でコードを散らかすことにまで及びます。

于 2010-03-03T01:04:53.247 に答える
0

多くの点で、ソフトウェアを価値のあるものにするのは、それが提供する途方もない技術的進歩ではなく、ソフトウェア自体の 3 次的なものと考えられるものだと思います。あなたがそれをサポートするためにそこにいるという事実のように。または、Web サービスとして提供されており、サーバーが実行されていることを確認します。または、それがコミュニティであり、コミュニティをモデレートして構築するためにそこにいること。

実際にコードを販売している場合でも、コードが持つ価値はコード自体に固有のものではなく、コードを取り巻く機能とエコシステムから派生します。

于 2010-03-03T03:10:34.603 に答える