2007/07/06

リバースエンジニアリングを出来るだけ防ぐには

 
さて突然ですが、ある開発しているプログラムがあって、それが勝手に解析されては困る場合があります。
 
 
重要な資産のコードが組み込まれてるのに、解析した人が勝手に自分の物として扱ってしまい、
しかもそれを 商品として売り出したりする かもしれない。
 
 
自分( 達 )が汗・血を流して作ったのに。
 
 
こんな事になると、苦労したものほど報われない結果になってしまいますよね。
 
 
こういう解析する事をリバースエンジニアリングと言うのですが、これは実行ファイルを配布する以上
防ぎようがありません。
 
 
暗号化でもそうですが、絶対大丈夫ってのは存在しないのです。
 
 
ただし、暗号化にとって例を言うならば、解析するのにスーパコンピューターを用いて100年かかるというなら、
暗号は成功と言えるでしょう。
 
100年の間に、その暗号の答えは変わってるでしょうし、そもそも10年以上解読かけ続けられるほどの
チャンスは、無い場合がほとんど。
 
 
そしてリバースエンジニアリングに関しては、最終的に人が理解する必要があります。
 
 
この理解させると言う壁を、とても高くすることは可能なので、それは最低限したいのですね。
 
 
さて、ここからが本題なのですが、リバースエンジニアリングを少しでも防ぐために、難読化ツールが必要になる
ことが、お分かりになると思います。
 
 
Java ではフリーでも良いのがあるのですが、VC++( Windowsアプリ )に関しては、基本的に有料しかありません。
 
 
Dotfuscator というツールなのですが、これは個人ユーザーが買うには 32万円と敷居が高いのですね。。
 
 
まぁ今後は必要になるかもしれないし、、ちょっと悩んでます( ´д`)
 
上記のツールの簡易版は VC2005 Standard Edition とかにも入ってるけど、機能不足な気がしますし。
  
 
 
ちなみに VC++ 6.0 は、すでに対応していないんだけどネ( ´д⊂
 
 
しかし、こういうツールを自分で実装しようにも、たぶん無理・・というか、
 
 
さらに幅広く お勉強のお時間がめっちゃ必要!
 
 
なるので、何かしらの製品を探していこうと思います。
 
 
バーチャルマシンの次は、ゲーム○ーイのエミュ開発や、OpenGL の勉強などやるべき事がありありだし、
将来時間があったら、自作は考えますが( ´д`)
 
 
まぁ難読化に関しては、そもそも実装に興味ないからやらないだろうなぁ。。

0 件のコメント:

コメントを投稿