人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows環境で利用するフリーソフトの開発を企画しており、その開発環境に関して悩んでおります。

現在、主に.NET環境(C#又はVB)を利用しており、社内の技術者もそれらに関する技術を習得しております。

しかし、.NET環境でコンパイルされたバイナリはご存じのように逆コンパイルが容易にできその点について.NET環境での開発ではなく、C++等でより安全(ここでいう安全とはソースコードの保持を指します)な方法をとるべきだという意見が多数出ています。

たしかにその方が安全ではあると思うのですが、そもそも社内のこれまでの主要な開発は.NET環境で行っており、C++等での開発はほぼおこなっていない為、製品の品質や開発要員の問題も気になるところです。

こういったケースの場合、皆様はどのように対応されているのでしょうか?

(1)やはりC++等.NET以外で開発を行う(一部DLL化も含む)
(2)そもそも逆コンパイル等を行うケースは希だと考え.NET環境で開発を行う
(3)その他の対応

そもそも.NET環境で難読化以外の技術的な対策があればよいのですが・・・

経験に基づくご意見がいただければと思います。


●質問者: VB2005
●カテゴリ:コンピュータ インターネット
✍キーワード:.NET C# C++ DLL VB
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● mattn
●15ポイント

Visual Studio .NET 2003であれば「Dotfuscator Community Edition」という逆コンパイル難読化ツールが提供されています。

◎質問者からの返答

mattn様

ご回答ありがとう御座います。

難読化ツールについては、海外製の物やフリーソフトも含めて理解しております。

今回の課題は、難読化はあくまでも敷居を高くするに過ぎず完全な対策には成り得ないため、

そういった意味で.NETによる開発については議論が分かれているところです。

これまでは受託系が多かった物で、そもそも納品した物は相手方に地位が異転していたため

まったく気にしておりませんでした。

しかし、一般的に公開した場合はこれまでとは異なり、善意によるソースの閲覧と

悪意によるソースの閲覧の両方が考えられ、また、同様に盗用による自社への被害も

想定される為、議論を行っている次第です。


2 ● pah00
●15ポイント

難読化ツールをつかえばどうでしょうか?

http://www.atmarkit.co.jp/fdotnet/tools/dotfuscator/dotfuscator_...

◎質問者からの返答

pah00様

ご回答ありがとう御座います。

難読化ツールについては、海外製の物やフリーソフトも含めて理解しております。

今回の課題は、難読化はあくまでも敷居を高くするに過ぎず完全な対策には成り得ないため、

そういった意味で.NETによる開発については議論が分かれているところです。


3 ● もなか
●30ポイント

突き詰めて考えると,バイナリを渡した時点で,手詰まりではないでしょうか.

いわゆるマシン語と.NET ILとの間で,解析の手間が著しく異なるとは思えませんし.

難読化は,興味本位のリバースエンジニアリングに対してはかなり有効だと思いますよ.

心配なら,金はかけたほうがよいです.

Dotfuscator は Community Edition と Professional では難読化のレベルが全然違います.

どうしてもロジックを秘匿したいというのであれば,webサービスを絡めるというのはひとつの手でしょう.

ただし,運用コストは高くなりますが.

◎質問者からの返答

monamour555様

ご回答ありがとう御座います。

>突き詰めて考えると,バイナリを渡した時点で,手詰まりではないでしょうか.

>いわゆるマシン語と.NET ILとの間で,解析の手間が著しく異なるとは思えませんし.

当社でも同様の認識で、一定の効果はあるかもしれませんが、本質的な対策には成り得ないと考えております。

>Dotfuscator は Community Edition と Professional では難読化のレベルが全然違います.

これは知りませんでした。

当社で利用しているものは確かチーム開発にも対応したエディションでしたのでProfessionalレベルの機能は

問題なく利用できたと認識しております。

情報ありがとう御座います。

>どうしてもロジックを秘匿したいというのであれば,webサービスを絡めるというのはひとつの手でしょう.

>ただし,運用コストは高くなりますが.

そうなんですよね。

かけるコストと、守るべき物(技術情報や潜在市場等)のバランスを如何に正確に読みバランスをとるかという

転につきないのだと思っています。

参考になりました。


4 ● yamauchi45
●30ポイント

そうですね。配布しようと思うと.NETだとやはり何かしら難読化になるのだと思います。

まだ、企画時点ということなのですよね。会社の規模や、やり方、作ろうとしているものにも依存するのだとは思いますが、企画時点でこのことを考えるのではなくて、コアな部分だけでもいっそ設計して作りにいってしまってはどうでしょうか。

一部のDLL化やサービス化をするにしても、だいたいそうすべき部分は分かっているのだろうと思います。得意な.NET環境でまず作りに行って、あとからそれをビジネスにする場合にどうするか考えてもよいような気がします。(Googleだって、その資産をどうやってビジネスにするかは、最後に考えたはずです。)

ある程度意識して設計すれば、あとから変更したり作り直したりする部分も少なくてすみますし、なによりその時点でゼロから作るのではなくなるわけですから。

◎質問者からの返答

yamauchi45様

ご回答ありがとうございます。

>まだ、企画時点ということなのですよね。会社の規模や、やり方、作ろうとしているものにも依存するのだとは思いますが、企画時点でこのことを考えるのではなくて、コアな部分だけでもいっそ設計して作りにいってしまってはどうでしょうか。

おっしゃるとおりですね。

『案ずるより産むが易し』まずは行動して、成長性を考慮しながら一歩ずつ進むのも一つの考え方ですね。

>Googleだって、その資産をどうやってビジネスにするかは、最後に考えたはずです

確かに、彼らに至ってはコンセプトベースで猪突猛進型であるのは否めません。

※それが非常に功を奏しているのも事実ですが。

参考になりましたありがとう御座います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ