ここから本文です

解決済みの質問

知恵コレに追加する

実行ファイルからソースをぶっこぬく方法

somurienokokoroさん

実行ファイルからソースをぶっこぬく方法

実行ファイルのみ手元にあって、そのソースがわからないとします。その実行ファイルはパスカル言語で書かれているとします。それを実行ファイルからそのプログラム(ソース)を見る方法はありませんか?

違反報告

ベストアンサーに選ばれた回答

kiyogi50さん

ありません。アセンブラに変換するツールは有りますけど。

この質問は投票によってベストアンサーが選ばれました!

この質問・回答は役に立ちましたか?
はい
いいえ

お役立ち度:お役立ち度 3点(5点満点中)2人中 1人が役に立つと評価しています。

ベストアンサー以外の回答

4件中14件)
並べ替え:回答日時の
新しい順
古い順

 

kappa_dayojpさん

宿題のカンニング?


リバースエンジニアリングといい、市販のものはインストールの際の許諾(誰も見ずに「はい」とする画面)に禁止と書かれていることもあり、法的に訴えられても文句はいえない場合がります。

http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E...

  • 違反報告
  • 編集日時:2008/6/10 09:10:10
  • 回答日時:2008/6/10 09:09:49

hiroaki0さん

ありません。

パスカルなどの高級言語で書かれたプログラムは、コンパイルという作業の過程で
機械語と呼ばれるCPUが直接理解できる数字の羅列に変換されます。
そのときに元のソースの情報は失われてしまうので、元に戻すことはできません。

アセンブラの命令は機械語の命令と一対一で対応しているので、他の方々が
仰られているように逆アセンブルすることである程度元に戻すことができます。
その場合でもコメントやシンボル情報(変数名や関数名など)は失われているので、
完全なアセンブラのソースに戻すことはできません。

【補足】
今、「逆コンパイラ」というキーワードで検索してみたところ、完全ではないものの
実行ファイルからC言語などのソースに変換するソフトは存在するみたいですね。
とくにJAVAで書かれたものはなかりの再現率でJAVAのソースに変換できるようです。

  • 違反報告
  • 編集日時:2008/6/10 07:53:21
  • 回答日時:2008/6/10 07:42:04

pencilcolorredさん

無い。

やればできそうだけど、著作権者からみれば、迷惑です。

---------
技術的には、全て同じには戻らないけど、極めて見にくいソースくらいにならなるはずです。
アセンブラよりはましかなという程度の。

  • 違反報告
  • 編集日時:2008/6/10 06:41:05
  • 回答日時:2008/6/10 06:39:14

mjsk50さん

パスカルは、古くからあるコンパイル方式の言語なので、生成された実行ファイルにソースファイルの情報は直接的には残っていないのです。したがって、その実行ファイルからパスカルのソースを取り出すことは不可能です。(nmコマンドでシンボルぐらいは見れるかも?)
別の方もおっしゃってますように、逆アセンブルによってアセンブラ言語のソースを得ることは可能です。

あなたにおすすめの解決済みの質問

プログラミング言語のC言語の問題集がある、サイトを教えて下さい。 実行結果を見て、自分でそのソースプログラムを考える形の問題が良いです。 もちろんその答えも載っているやつが良いです。
Perlをコンパイルする方法を教えてください。 PerlスクリプトをWindows上で動作するexe形式の実行ファイルにコンパイルしたいのです。 そもそも、そのようなことは可能でしょうか? もし可能であれば、そのツールを教えていただ...
VBスクリプトでファイルを生成するソースを書いたのですがそれをバッチで実行するようにしてありますが例えばPCが起動していなく実行できなかった場合次回実行時に「もしこの名前のファイルがなかったら先に 作るはずだったファ...
回答ありがとうキャンペーン 回答してポイントを当てよう!! 2000名様に500ポイントプレゼント キャンペーンの詳細を見る ※回答することで自動的に応募となります。

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:プログラミング]

ただいまの回答者

13時37分現在

2396
人が回答!!

1時間以内に4,375件の回答が寄せられています。