[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

デコンパイル (decompile)

pointこの用語のポイント

pointプログラムからソースコードを取り出すことだよ

pointコンパイルの逆だよ

スポンサーリンク

簡単に書くよ

デコンパイル (decompile)とは

「逆コンパイル」のこと。
つまり

できあがっているプログラムからソースコード(プログラムの元ネタ)を取り出すこと
です。

image piyo

詳しく書くよ

※このページの説明は「逆コンパイル」の説明と、ほとんど同じです。既に「逆コンパイル」の説明をご覧になった方は、読んでもあまり意味は無いと思います。

順番に見ていきましょう。
まずは、プログラムができあがるまでの流れから説明します。

プログラムを作る際には、まずソースコード(プログラムの元ネタ)を書きます。

デコンパイル

このソースコードに対して「コンパイル」と呼ばれる作業を行います。
そうすると、ソースコードを元にして、実際のプログラムができあがります。

デコンパイル2

大雑把ですが、これがプログラムを作る際の流れです。

ここで、コンパイルに注目してください。

デコンパイル3

コンパイルで行った作業を完全に逆の手順で行えば、理屈上、プログラムをソースコードに戻せるはずです。

デコンパイル4

このように、プログラムからソースコードに戻す作業が「デコンパイル」です。
日本語で「逆コンパイル」と表現される場合もあります。

デコンパイルする際には、一般的には専用のソフトを使います。
このソフトは「デコンパイラ」と呼ばれます。

ただし、ソフトを使えば完全に元に戻せるかというと、そんなこともありません。
プログラミング言語によって、デコンパイルしやすかったり、しにくかったりします。
ソフトの性能やプログラムの作り方によっても変わってくるでしょう。

お勉強や解析目的でやるのは問題ないと思います。
抽出したソースコードを流用する目的でやるのは、現実的ではないと思います。

抽出できるのは「それっぽいけど正しいか分からない」ソースコードです。
それを、そのまま使って実際のプログラムを作るのは、ちょっと怖いです。
実用に耐えるかという点で、疑問を感じます。

目的は人それぞれでしょうけどね。
個人的には解析目的で行う作業だと理解しています。

image piyo2

一言でまとめるよ

まぁ「デコンパイル」って単語が出てきたら「プログラムからソースコードを取り出すことなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク