- ベストアンサー
逆コンパイル、逆アセンブリとは?
逆コンパイル、逆アセンブリとはどういう意味ですか? 教えてください。 よろしくお願いします!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんわ (^^ んーと普通 プログラムの実行形式はexeファイルでしょ? それは 元ソースファイルからコンパイルし それをexe形式にしてるんですよ。 だからvbでつくった環境がなくてもexeにすりゃ PCにVBがインストールしてなくても実効できるでしょ? ランタイムは別にして。 ソースコードは一般的に見せません! オープンソース 非営利ならともかく。 だって 企業秘密ですもん。 見せたら勝手に手加えて 再販売でもされたら 開発した人がかわいそーじゃん。 んで一度exe形式になったらソース原型にはならないよね そのexeを逆コンパイルし元のソースに戻すことを言います。 イメージ伝わったかしらん? ではでは。
その他の回答 (4)
こんにちは。 kazuoaoさんの関心カテゴリー欄を見せて頂いた所プログラミング系統が結構多いので本当は、詳しい方だと思いましたが、敢えて素人向けに噛み砕いて解説しますと、英語の通訳や翻訳に似ている問題だと思います。 -------------------------------- 日本語を通訳を通して英語をにするのは、インター・プリター方式 日本語を文章として英語に翻訳するが、コンパイラー方式 (日本語)→韓国語→英語、のような中間言語を介して翻訳するのは、アセンブルすると表現します。 ====================== 英語→韓国語→日本語、のような逆順の翻訳が、逆フセンブルすると表現します。 何故逆アセンブルする必要が有るのか? 中に何が書かれて居るのか興味が有るから、中身を解読出来れば他人のアイデアーを改造(改良して)もっと良い作品が作れて仕舞う(最初に作った「アィデアーを考えた人」の苦労が水の泡と化す) 著作権の問題にも抵触する。
- ymmasayan
- ベストアンサー率30% (2593/8599)
コンパイルもアセンブルもソースプログラムからオブジェクトを作ります。通常はこれだけで終わりです。 ところが色々な事情で、その逆をしたくなることが有ります。 (1)他社の優れたプログラムの解読。 (2)ソースプログラムをなくして再作成したい場合。 (3)実習としてやってみる場合。 かなり大変な事です。逆コンパイルや逆アセンブルが終わってもそれらが何をしているかは人間が判断していかないといけないのですから。
CPUが理解できる1と0の組み合わせで構成されているプログラム情報(マシン語)を人間が理解出来る表記の命令に変換する事です。 C言語やアセンブリ言語等のプログラム言語は、プログラムを作る側である人間にとって分かりやすい表記の命令になっており、これらの命令で書かれたプログラムをプログラムソースと呼びます。 それをCPUが解釈出来る1と0の組み合わせで構成されるマシン語に変換し、CPUがこれを実行します。 プログラムソースからマシン語への変換をC言語ではコンパイル、アセンブリ言語ではアセンブルと呼びます。 これとは逆に、メモリやファイル内に書き込まれたマシン語からプログラムソースに戻す事を逆アセンブル、逆コンパイルと呼びます。
- nagiha
- ベストアンサー率18% (300/1631)
コンパイルはソースプログラムをオブジェクトプログラムに翻訳することです。逆がつくのでオブジェクトプログラムからソースプログラムに直すことを言います!!
お礼
皆様、本当にわかりやすい説明ありがとうございました!!