- PR -

逆コンパイル対策について

投票結果総投票数:131
必ずするようにしている 2 1.53%
高価なものだけしている 1 0.76%
全くしていない 128 97.71%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
大ベテラン
会議室デビュー日: 2006/06/28
投稿数: 116
投稿日時: 2007-05-10 00:07
閲覧回数がこの件に関しての関心の高さを物語っていますね。

私自身は逆コンパイル対策の必要な事案に関わった経験はなく、従ってソースコードは全て
提出していますし、逆コンパイルについても対策は行っていないです。

ソースコードを納入しない点について否定的な方もいらっしゃいますが、
専門性の高いアプリケーションについては、普通に行われているものと思われます。
例えば、パラメータや計算式が重要なアプリの場合が考えられますが、
これらが解析されると会社の強みが失われ、大きな損害を受ける可能性が考えられます。

おそらくblue200102さんの勤める会社もそのように独自性の高いアプリケーションを
提供しているのでしょう。

逆コンパイル防止用にどんなツールがあるのかと検索してみたのですが、まさにピンきりでした。
1ビット変更しても実行できないという国産ソフトは多くの機能をほこり、見積もり販売、
海外のあるソフトはシンボル変更・わざとスパゲッティ化などの難読化のみだがリーズナブルなど、
また、その間を取ったようなソフトもあります。
これらのソフトは、高いお金を払ってでも逆コンパイル対策を施す理由があるからこそ、
存在しているはずですので需要はそれなりあるのだろうと思います。
全般的に高いので、需要の程度はそれほどではないのかなと推察しますが。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-05-10 00:38
僕は ASP.NET のプログラムが多いので余計かもしれませんが、逆コンパイル対策が必要なプロジェクトにはかかわったことがありません。

たぶんどうしてもロジックを外に漏らしたくないというのなら、
WebService などで インターフェイス のみを公開して、プログラムは自社のWebサーバなどに配置するぐらいしかできないのではないでしょうか。
_________________
かるあ のメモスニペット
blue200102
会議室デビュー日: 2007/05/07
投稿数: 8
投稿日時: 2007-05-12 05:53
皆さん、ご投稿ありがとうございます。どの方のご意見もたいへん参考になっています。

masaさんの2007-05-09 02:16のご指摘の通り、MSの本音としては、高級言語のソースコードが流出した事は、痛かったと思います。

引用:

Jittaさんの書き込み (2007-05-09 07:43) より:
wordやexcelのコードが公開される必要がありますか?
それはなぜ?
公開されることで、どの様な、どれくらいの人達に、どの様な利益がもたらされますか?

少なくとも、ファイル フォーマットについては公開されており、それにしたがったフォーマットで入出力できればアプリケーションそのものは必要なく、コードが公開される必要もないとかんがえます。


MSのような巨大企業なら公開(流出)してそれを先進国(著作権保護の法律や意識が整った国)の企業が一部分をパクったとしても法廷闘争で懲らしめる事が出来ます。しかし、たとえ、先進国の日本でも、小さな会社は、パクられても裁判する時間的余裕も資金的余裕も無いのが現状だと思います。要するにパクられ損で、泣き寝入りする事になると思います。また、MSでも、今話題になっている、国営遊園地でミッキーマウスを平気でパクっているような国では、wordやexcelのコードが公開(流出)するとパクろうとする人たちにとっては、多大な利益がもたらされると思います。

あと、「ファイルフォーマットが公開されていれば、アプリケーションは必要ない」と仰ってますが、このOpenOfficeでもかなり高い互換性を実現してはおりますが、完全な互換性とまでは行っていません。例えば、WordのファイルをWriterで開くと、Wordと100%同じ表示にならないところがあります。これは、単に、法律的な問題の為だけですか、それとも、技術的に出来ないのでしょうか?
http://ja.openoffice.org/

引用:

で、デコンパイルしなくてもディスアセンブル出来れば、手順が一番単純化されたコードが手に入りますよね?というのは、主旨に沿っていると思いますが、その件に関しては如何でしょう?


逆アセンブル(EXEとかの実行ファイルからアセンブリ言語にコンバート)、逆コンパイル(EXEとかの実行ファイルから高級言語にコンバート)
という認識なのですがあっていますよね?

私が、懸念しているのは、逆コンパイルの方です。理由は、VB.NETやC#.NETのような高級言語の方が可読性も開発人口もアセンブリ言語とは比較にならないほど高い事です。つまり、誰もが簡単にロジックを解読し、パクれてしまう事につきます。
ここをご覧下さい。
http://www.atmarkit.co.jp/fdotnet/tools/dotfuscator/dotfuscator_02.html

引用:

ニーモニック表を見ながら手でアセンブルしていた世代って、ウチらが最後なのかな?




Jittaさんは、かなり昔からプログラミングされていたベテランの方だと感じます。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2007-05-12 10:49
遅ればせながら、投票しました。
僕は全く対策していません。

確かに .NET に移行する際に、この点について考える機会はありましたが、結果的にさほど問題ではないだろうという結論になりました。

理由は、皆さんが述べている通りです。

また、.NET によるソフトウェア開発がもたらす利益の方が、そんなことよりも数倍も魅力的だと思っています。

嫌なら、別の開発環境を使えば済む話ですし、.NET が使いたいというなら、それを承知で使えばよいだけの話です。
逆に、そのような仕様の製品を問題視する必要もないように思います。

# 結論も、投票結果に既に現れているようですね。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog 満員御礼

[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2007-05-12 10:50 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-12 13:02
Javaのところのスレッドを引用しましたが、他の人がすでにあると主張する技術について、斬新的だと譲らないわけです。特許も取られたようですが、すでにある技術であると主張されて、調査されると、特許が取り消されることもあります。
どちらかというと、コードよりもアルゴリズムが護られるべきで、とはいえ、ほとんどの場合は既存のアルゴリズムの組み合わせで実現されるので、コードを見て真似たのか、既知のアルゴリズムを応用した結果似たコードになったのか、それは証明が難しいでしょう。

まあ、私は開発依頼を受けて仕事をしていますから、ほぼ間違いなく、どんなコードも既知なんですよ。なので、護らなければならない状況ってのが想像できないだけなのかも
_________________
はにまる
ぬし
会議室デビュー日: 2003/12/19
投稿数: 969
お住まい・勤務地: 誤字脱字の国
投稿日時: 2007-05-12 16:45
引用:

ラフィンさんの書き込み (2007-05-09 08:56) より:
受託開発の場合はこれと同様でそのソースに関してユーザーにも著作権があってもしかるべきだと考えます。


著作権は開発企業に帰属します、またユーザーに譲渡できるのは著作財産権のみです。

引用:

そこにはユーザーの戦術レベルの業務改善ノウハウが存在し、それはユーザーにとっては当然守りたいものだと思います。


アイデアは著作権の保護対象ではありません、守秘義務や他の知的財産権で保護しなければならないでしょう。

引用:

その場合ソースを開発側のみ持つというのは一方的な権利の主張かも。


大抵の企業は契約時に著作権や納品物のチェックをします。パッケージ購入ならともかくオーダー開発で取引契約を法律的に判断しないのは愚かな行為です。市場の力関係からすれば一方的にベンダーが権利を押し切ることは考え難いのでは?
はにまる
ぬし
会議室デビュー日: 2003/12/19
投稿数: 969
お住まい・勤務地: 誤字脱字の国
投稿日時: 2007-05-12 16:56
引用:

Jittaさんの書き込み (2007-05-12 13:02) より:
Javaのところのスレッドを引用しましたが、他の人がすでにあると主張する技術について、斬新的だと譲らないわけです。特許も取られたようですが、すでにある技術であると主張されて、調査されると、特許が取り消されることもあります。
どちらかというと、コードよりもアルゴリズムが護られるべきで、とはいえ、ほとんどの場合は既存のアルゴリズムの組み合わせで実現されるので、コードを見て真似たのか、既知のアルゴリズムを応用した結果似たコードになったのか、それは証明が難しいでしょう。

まあ、私は開発依頼を受けて仕事をしていますから、ほぼ間違いなく、どんなコードも既知なんですよ。なので、護らなければならない状況ってのが想像できないだけなのかも


Javaの話は他者(Sun)が技術評価をしないという話で、この話題は自分(blue200102さん)が評価しているソースを周囲から守る相談ですよね。

自ら所有するソースを自ら、どう評価するか問題ないのでは?


[ メッセージ編集済み 編集者: はにまる 編集日時 2007-05-12 16:57 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-12 22:23
引用:

はにまるさんの書き込み (2007-05-12 16:56) より:
引用:

Jittaさんの書き込み (2007-05-12 13:02) より:
Javaのところのスレッドを引用しましたが、他の人がすでにあると主張する技術について、斬新的だと譲らないわけです。特許も取られたようですが、すでにある技術であると主張されて、調査されると、特許が取り消されることもあります。
どちらかというと、コードよりもアルゴリズムが護られるべきで、とはいえ、ほとんどの場合は既存のアルゴリズムの組み合わせで実現されるので、コードを見て真似たのか、既知のアルゴリズムを応用した結果似たコードになったのか、それは証明が難しいでしょう。

まあ、私は開発依頼を受けて仕事をしていますから、ほぼ間違いなく、どんなコードも既知なんですよ。なので、護らなければならない状況ってのが想像できないだけなのかも


Javaの話は他者(Sun)が技術評価をしないという話で、この話題は自分(blue200102さん)が評価しているソースを周囲から守る相談ですよね。

自ら所有するソースを自ら、どう評価するか問題ないのでは?


[ メッセージ編集済み 編集者: はにまる 編集日時 2007-05-12 16:57 ]

既にある技術だから、評価されないのではないですか?
何人かが、card?との違いを説明するよう求めていますが、その違いを説明せず、ただ「今までにない技術だ」と言い張るばかりです。また、同一性が指摘されているモノを知っておらず、知ろうともしていません。
そういう、「態度の同一性」を感じています。
_________________

スキルアップ/キャリアアップ(JOB@IT)