『L・DK』上白石萌音&杉野遥亮インタビュー!

お世話になっております。

Visual Basic 6にてあるプログラム(ソフト)を作成し、
動作確認して、安定して使えるようになった後、
実行ファイル(EXEファイル)作成しようとしております。
普通にVB6の機能で実行ファイルを作成予定。
このソフトをいろいろな人に配布する場合を考えます。

この場合、ソフトを受け取った第三者はコードを閲覧することは一般的に言って不可能に近いでしょうか。その点を知りたいと思っております。

おそらく不可能ではないと思いますが、通常のソフト環境で通常の努力では不可能なのかどうかを知りたいのです。

当方でこしらえているツール(プログラム)は特殊なノウハウもなく、見られても問題もないのですが、閲覧ができてしまうのかどうか、見られるというのはあまり気持ちのよいものではないだろうという意味です。

一方では、良いソフトを手に入れた場合、どのようにコード記述しているのか知りたい、容易にコード閲覧できれば便利だろうというのもあります。

つまり、コード閲覧の困難さの程度が知りたいのです。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

コード閲覧といったときの「コード」とは何を言っておられるかによって異なります。



EXEファイル自体のコードは、バイナリエディタやダンプ出力プログラムがあれば、誰でも容易に見ることができます。但し、それの意味がわかるのは、機械語の知識がある人に限られます。機械語の知識がある人が時間をかけてコードを見れば、そのプログラムのアルゴリズムを知ることはできます。ただし、非常に面倒な作業ですので、よほどの価値がなければ、あるいはよほどの好奇心がなければ、そのようなことをする人は非常に限られるでしょう。

元のVisual Basicのコードを見れるかどうかというと、これは、一般論としては、完全に元通りのコードを復元できるとは限りません。

但し、いわゆるリバースエンジニアリングの技術を使えば、ある程度は、そのプログラムのアルゴリズムを高級言語に変換することは可能です。そのコードを読めば、機械語を直接解読するよりはプログラムのロジックを理解することは比較的容易です。

例えば、リバースエンジニアリング技術の具体例は、リバースコンパイラ(日本語では逆コンパイラとも呼ばれる)といったツールです。「逆コンパイラ」で検索すればいろいろ出てきます。

市販ソフトの中には、使用許諾契約においてリバースエンジニアリングの適用を禁じているものもあります。但し、このような契約条項が有効かどうかは法律的に微妙であると聞いたことがあります(このあたりの詳しい法律論まではわかりませんが)。

なお、「見られるというのはあまり気持ちのよいものではないだろうという意味です。」と書かれていますが、コンピュータプログラマの中には、自分の書いたコードを積極的に見せたがる人もいます。プログラムを書くことも、表現活動の一種ですので。
    • good
    • 0

>コード閲覧の困難さの程度が知りたい



一般には#1,#2さんが答えておられるとおりですが
実は、VB6.0にはdecompiler(逆コンパイラ)が存在します。(私が見つけたものは有料ですが)
ご丁寧にも、その逆コンパイラでも解読しづらいように改造してくれるツールも存在しますが、これを通しているソフトはそうそう無いでしょうから、意外と簡単に解読できるかもしれません。

サンプルを見る限りだとコメントや変数名などは再現できないようですが、基本的なロジックは再現できているようです。

URLを紹介したいのはやまやまなのですが
・自分で試したわけではない(有料だったので)
・自分もプログラマなので、そういうツールは欲しいけど(笑)
あまり人に勧めるのは気が引ける
(ソースを見せていいなら同梱するでしょうし)
・質問の内容が「コードが逆引きできるかどうか」
なので、「できる(かも)」という答えで十分・・・と思った

ということで、Googleあたりで検索してみてください(^^;

ちなみに.NETだと(decomplierを)MS自身で出してたと思います。
    • good
    • 0

一般に、実行コード(EXEやCOM)から、BASICやCなどの高級言語のソースを取り出すことは不可能です。



コンパイラは、高級言語で記述されたロジックを、もっとも効率よく(とは言ってもコンパイラのでき次第ですが)実行できるよう、組み直しをしています。

ただし、デバッグ情報を埋め込んだ実行コードでは、ある程度のソース情報が確認できるかもしれません。
デバッグバージョンの場合、あまり最適化を行うと、エラー箇所の特定がむつかしくなるため、ソースのロジックにわりと忠実にコンパイルするため、元の計算ロジックを推測できるかもしれません。

ただし、コメントや、マクロ文(VBにもあったっけ?)などは、残りません。コメントは削除されますし、マクロ文は展開されてしまいます。
この状態で、元のソースを復元できるわけはありませんので、安心していいと思います。

その昔、プログラムがアセンブラで書かれていた時代、逆アセンブラというのがあって、これを使うと元のアセンブラコードが解ったりしました。このころでも、コメントは削除されていましたので、解析は容易ではなかったと思います。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング