• ベストアンサー

逆コンパイル、逆アセンブリとは?

逆コンパイル、逆アセンブリとはどういう意味ですか? 教えてください。 よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんばんわ (^^ んーと普通  プログラムの実行形式はexeファイルでしょ? それは 元ソースファイルからコンパイルし それをexe形式にしてるんですよ。 だからvbでつくった環境がなくてもexeにすりゃ PCにVBがインストールしてなくても実効できるでしょ? ランタイムは別にして。 ソースコードは一般的に見せません! オープンソース 非営利ならともかく。 だって 企業秘密ですもん。 見せたら勝手に手加えて 再販売でもされたら 開発した人がかわいそーじゃん。 んで一度exe形式になったらソース原型にはならないよね そのexeを逆コンパイルし元のソースに戻すことを言います。 イメージ伝わったかしらん? ではでは。

その他の回答 (4)

noname#22689
noname#22689
回答No.5

こんにちは。 kazuoaoさんの関心カテゴリー欄を見せて頂いた所プログラミング系統が結構多いので本当は、詳しい方だと思いましたが、敢えて素人向けに噛み砕いて解説しますと、英語の通訳や翻訳に似ている問題だと思います。 -------------------------------- 日本語を通訳を通して英語をにするのは、インター・プリター方式 日本語を文章として英語に翻訳するが、コンパイラー方式 (日本語)→韓国語→英語、のような中間言語を介して翻訳するのは、アセンブルすると表現します。 ====================== 英語→韓国語→日本語、のような逆順の翻訳が、逆フセンブルすると表現します。 何故逆アセンブルする必要が有るのか? 中に何が書かれて居るのか興味が有るから、中身を解読出来れば他人のアイデアーを改造(改良して)もっと良い作品が作れて仕舞う(最初に作った「アィデアーを考えた人」の苦労が水の泡と化す) 著作権の問題にも抵触する。

kazuoao
質問者

お礼

皆様、本当にわかりやすい説明ありがとうございました!!

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.4

コンパイルもアセンブルもソースプログラムからオブジェクトを作ります。通常はこれだけで終わりです。 ところが色々な事情で、その逆をしたくなることが有ります。 (1)他社の優れたプログラムの解読。 (2)ソースプログラムをなくして再作成したい場合。 (3)実習としてやってみる場合。 かなり大変な事です。逆コンパイルや逆アセンブルが終わってもそれらが何をしているかは人間が判断していかないといけないのですから。

noname#5545
noname#5545
回答No.3

CPUが理解できる1と0の組み合わせで構成されているプログラム情報(マシン語)を人間が理解出来る表記の命令に変換する事です。 C言語やアセンブリ言語等のプログラム言語は、プログラムを作る側である人間にとって分かりやすい表記の命令になっており、これらの命令で書かれたプログラムをプログラムソースと呼びます。 それをCPUが解釈出来る1と0の組み合わせで構成されるマシン語に変換し、CPUがこれを実行します。 プログラムソースからマシン語への変換をC言語ではコンパイル、アセンブリ言語ではアセンブルと呼びます。 これとは逆に、メモリやファイル内に書き込まれたマシン語からプログラムソースに戻す事を逆アセンブル、逆コンパイルと呼びます。

  • nagiha
  • ベストアンサー率18% (300/1631)
回答No.1

コンパイルはソースプログラムをオブジェクトプログラムに翻訳することです。逆がつくのでオブジェクトプログラムからソースプログラムに直すことを言います!!

関連するQ&A

  • コンパイルの逆はできますか??

    プログラムの本にこんなことが書いてありました。 『人間にわかる文字をコンパイルして、CPUのわかる0101にします。』 これを見て思ったのですが、CPUのわかる0101文字を逆に人間にわかる文字に返すことは出来ますか?? 他にも、JavaやCで書いた命令をコンパイルし、CPUのわかる0101文字にしてから逆にコンパイルして、JavaをCに変えたり、CをJavaに変えたりできるってことですか??

  • PIC アセンブリのコンパイルエラーについて

    こんにちは PICの16F88でアセンブリを使ってのプログラミングを試みているのですが、 コンパイルをすると、 「Overwriting previous address contents (0004)」 というエラーが出てきます(尾部の数字は0004から0040までの種類があります)。 それ以外のエラーは出ていないので、これさえ解決すれば大丈夫だと思うのですが、 原因は何でしょうか? 自分で思う点としては、  ・割り込み処理を使っているので、それが関係あるのではないか  ・コンパイル前のプログラム行数が240行あることが問題なのではないか ということです。 開発環境はMPLAB IDE v8.50です。 わかる方ご指導よろしくお願いいたします。

  •  逆コンパイル??

     逆コンパイル??  今晩は,質問させていただきます.どうぞよろしくお願いいたします. 以前ネットで「逆コンパイル」なる話を閲覧したことがございます. 例えばVB.NETでビルドしたExeファイルを公開する場合, 入手した人がこれの中身を少しでも変更できたり,コードを閲覧したり できるものなのでございましょうか??  もしお詳しい方がいらっしゃいましたら,どうぞよろしく お願いいたします.

  • 逆コンパイル防止について

    逆コンパイルさせないようにするには、どうした良いのでしょうか? 以前に逆コンパイルする方法は乗っていたのですが、それを防止する方法はなかったかと思います。 どなたかご存知でしたら、教えて下さい。

  • 逆コンパイル

    こんにちは。 自分で作成したファイルを逆コンパイル出来ると聞いたのですが、HPで検索してもよくわかりませんでした。 引き続き自分でも調べようとは思いますが、ご存知の方がいらしたらご教授願いします。 よろしくお願いします。 OS:Windows2000

    • ベストアンサー
    • Java
  • プログラミングのアセンブリ言語のアセンブリとはどう

    プログラミングのアセンブリ言語のアセンブリとはどういう意味なんでしょうか?

  • 逆コンパイル

    C#で書いた単純なプログラムをコンパイルして、それをテキストエディタで開いたところ、なんだかソースコードのような文字列がかなりそのまま実行バイナリの中に含まれています。 これって簡単に逆コンパイルとかされないでしょうか。 プログラムのバイナリを圧縮や暗号化して、実行時にそれを展開するような方法があると聞いたのですが、それはC#でもできますか? 別のプログラムは圧縮ファイルを解凍するような方法じゃなくて、1つのプログラム内でそういうことできませんか?

  • 【逆コンパイル】JadEclipseの使い方

    JadとJadEclipseのプラグインを導入して、設定も全て終了したのですが、 いまいち逆コンパイルのやり方がわかりません。色々検索はしてみたのですが、設定のやり方ばかりで・・・ .jam .jarファイルがあるのですが、これを逆コンパイルしたいのですが、可能でしょうか?また、どうやってデコンパイルをすればいいのかわかりません。 最近Javaをはじめてまだまだ初心者なので面倒くさい質問かと存じますが、 どうぞよろしくお願いします。

  • 逆コンパイルマニアが多いのでしょうか?

    ウインドウズOSをはじめとするマイクロソフト製品に、 アルゴリズムやプログラム記述上の欠陥過失があることを マッキントッシュのユーザーグループで多く話題にされているのを見ます。 そこで、ごくごく単純素朴な疑問なのですが、 ソースコードの見比べをしないとわからない内容だと思いますので、 オープンソースでもないのに中身がわかる、というのは、マックファンの皆さんは多分MS製品を逆コンパイルをしてアップルのプログラムと比較しているのだと思うのですが、 そもそも逆コンパイルによって生成されたソースコードの記述文というのは「原本」とはかなり違ったアバウトなものになる、という逆コンパイラの一般論的な説明文をパソコン用語辞典などで拝見しています。 アップルの製品は逆コンパイルして生成される記述文であっても、やはり美しくて感心するようなものなのでしょうか??? またプログラミング上の美しさや間違いというものは、逆コンパイルで本当に判明できるものなのでしょうか?

  • アッセンブリーやassyとはなんですか?

    アッセンブリーやassyとはなんですか? 図面に関係したものだと思うのですが、意味がわかりません。 どういうことなんでしょうか? 宜しくお願いします。 正しいのはアッセンブリーですか?それともアセンブリですか?

専門家に質問してみよう