• ベストアンサー

ソースが見たい

拡張子exe等の実行ファイルのソースが見たいです。 以前、逆コンパイルや逆アセンブルで、できると言う話を 聞いたのですが、それ自体の意味もわかりません。 わからないことだらけです。 教えてください。

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

  • ベストアンサー
  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.2

たぶん、VB等で作ったソースがそのまま出ると思っているかもしれませんが違います。 >逆コンパイルや逆アセンブルで 出てくるのはアセンブラのソースです。 アセンブラがかなり高度に解らなければ(解析できなければ)使えません。 逆コンパイル=コンパイルの逆をする。 逆アセンブル=アセンブラの逆をする。 ディスアセンブラのアプリケーションを実行し、元のEXEを指定すると解析しアセンブラのソースコードが吐き出されます。 また、下記のアプリは86系のCPU限定です。 アセンブラで解析しますのでCPUが限定されます。 http://www.softboat.co.jp/product/sr97/index.html

参考URL:
http://www.softboat.co.jp/product/sr97/index.html

その他の回答 (3)

  • jppy
  • ベストアンサー率14% (14/99)
回答No.4

確かに禁止されているのですが・・・ まぁ、他人が作ったものだとなにかと問題になるかもしれないので、自分で適当に作ったのをdisassembleしてみるのもいいかもしれません。 多分二度と見たくなくなるものが出てくるはずです。 w32dasmとか、デモ版とかあるし 注意: 他の人も書いていますが、リバースエンジニアリングは・・・(以下略) あと、容量の大きいのをやると逆アセンブルするの結構大変なんで小物でやった方がいいよ

  • selenity
  • ベストアンサー率41% (324/772)
回答No.3

確かに可能ですが、「かなり高度な」知識が必要です。 悪い行為としては、 ・逆アセンブルを行い(解析し)、プロテクトを外す。 などがあげられますね。 注意:大半の市販ソフトでは、仕様許諾契約書内で「リバースエンジニアリング等の行為」を禁止しているので逆アセンブルを『してはいけない』ことになっています。

  • fuji1
  • ベストアンサー率29% (109/371)
回答No.1

こんばんわ。。 プログラム研究に熱心なことはいいことだと思います。 私も以前、exe の逆コンパイルをしたことがありました。 でもそれは8ビットの時代です。 16ビットになり、今は Windows の時代となってしまってからは、VCのデバッグで見るくらいで、もうむりでしょう。 なんにしても、exe からきれいなソースができてくるわけではありません。 アセンブラの勉強をするのなら別ですが、、、 あと、市販のプログラムは、逆コンパイル(リバースエンジニアリング)を禁じていることもあります。

関連するQ&A

  • 実行ファイルからソースがとりだせますか?

    実行ファイルを逆コンパイルしてソースを取り出せたり しますか?

  • 実行ファイルと実行モジュールについて。

    実行ファイルは、例えばソースコードをコンパイルしたものを実行ファイルと呼び、実行モジュールは、例えば、ソースコードをアセンブル、 コンパイルインタープリタの複数のファイル群の事でしょうか?で、違いは、ファイルは 1つか複数の違いという事でしょうか?教えていただけないでしょうか?すみません。

  • ソースなどフォルダごと削除してしまった

    VisualBasic2008で作った実行ファイル(~.exe)はあるんですが、そのほかのソースなどフォルダごと削除してしまったようです。 実行ファイル(~.exe)は別のところにコピーして使ってたので残っているんです。 実行ファイル(~.exe)からソースを作るなんて事できませんか? 自分で作ったやつなので大まかには分かるんですが・・・・

  • ソースコードのコンパイルについて

    ソースコードのコンパイルについて よくソースコードだけしか公開されていないソフトを見かけますが、これらはWindows, Mac, LinuxそれぞれでコンパイルすればそれらのOSで動くようになるのでしょうか?例えばCで書かれたソースコードをWindowsでコンパイルすればexeに自動的にコンパイルされ、MacでコンパイルすればMac用のバイナリに自動的にコンパイルされるのでしょうか? またMacにはLinuxのシェルがあったと思うのですが、MacでコンパイルしたものはLinuxで動きますか?またその逆はできるのでしょうか。

  • アセンブリの実行ファイルをソースに変換する

    アセンブリの実行ファイルをソースファイルに逆アセンブラしたいのですが、方法が見つかりません。 どうすればexeファイルからasmファイルに戻すことが出来るんでしょうか?

  • C言語でプログラムを作る課題があたえられました

    プログラムは作ったのですが、それを書いた拡張子『.c』のソースファイルとコンパイル後に作成された拡張子『.exe』のファイルを提出することになっています。『.c』のファイルとは『C source』に書かれているプログラムしょうか。また、『.exe』のファイルとはアプリケーションに書かれているものでしょうか、それともobject fileに書かれているものでしょうか。35年前にfortranは勉強して少し、プログラムを作った経験はあるのですが、今では言葉の意味が理解できません。恐れ入りますが詳しく教えてください。

  • C++とWindowsでCGIです。

    http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/showtime.html のサンプルソースをコンパイルしてEXEファイルを作成しました。 VisualStudio.NET 2003 WindowsXP Pro Win32コンソールアプリケーションで拡張子.ccファイルをコンパイルしました。 CGIだとEXEファイルをHTML表示できるらしいのですが、 よくわかりません。 Windows環境・VisualC++で手軽にCGIファイルを実行できる方法を教えてください。 EXEファイルの拡張子をCGIに変えても、できませんでした。 あまりCGIのことはよくわからないのですが、C++でできるならやってみたいと思いました。 よろしくお願いします。

  • ソースを2つ作った場合のとき

    こちらのカテゴリーでは初めて質問させていただきます。宜しくお願いします。 先日からC言語を勉強し始めて、ボーランドから無料配布されているやつをDLし、設定までは終わりました。 それで いざプログラム作成しようとしたのですが次のような状態になってしまいました 【ファイル】→【新規作成】→【プロジェクトタブ】からプロジェクト名 をつける。そのあと【新規作成】→【ファイル】→【C/C++ファイル】でファイル名をつける。 そしてプログラムを作成、コンパイルなどをすると、そのときの実行結果はちゃんと出るのでます。(これをソース1とします。) その後同じように【ファイル】→【新規作成】→【ファイル】でプログラムを作り実行をするとここでもまたちゃんと結果を出ます。(これをソース2とします) そのあと先ほど作ったソース1を見直そうとして、もう一度実行するとそのままソース2の結果が出るのですがこういうときはどうすればよろしいのですか? すごく長々となり申し訳ありません。意味不明だったならばもう一度後で書き直します。 それとプログラミングなどは全くの初心者で本当に申し訳ありませんが宜しくお願いします

  • cobolの関連ソースについて

    今、触ったこともないcobolのソースの管理をやれ、と言われてます。 で、cobolの実行プログラム、拡張子は、*****.so 見たいな感じなのですが、それをコンパイルするのに、多くのソースがいるみたいなのです、その関連を調べろ、と言われました。たとえば、cobolのmakefileと呼ばれているものを、unix上でviで開いてみると、「ヘッダープログラム」なるコメント文が書いていたり、オブジェクトとか書いていたり、、そして、そのヘッダーの部分をみると、たしかにプログラムの名称が書いているので、今度はそのプログラムの中身を見てみると、同じように、また違うプログラムを参照しているようなのです。ひとつの実行ファイルを生成するのに、ソースがツリー構造になっていて、それをすべて理解する必要があるのですが、中身をみたときに、どういうコマンド等を参照していけばいいのかわかりません。 分かりやすく整理すると、ある実行プログラムを生成するのに、ソースが必要なのですが、そのソースの全てを洗い出すには、どうすればいいのか?ということなのですが、 詳しい方、ぜひよろしくお願いします!

  • ソースの作成

    独学でC言語の勉強をしているのですがソースの作成もできません。 テキストファイルの新規作成のボタンを押し、ソースを入力した後、ソースをセーブするには何をすればいいのでしょうか。メニューで、プロジェクト→プロジェクトへ追加→新規作成でC++ソースファイルを選択しプログラム名を入力して作成すると拡張子がcppのファイルができたのですが開いてもソースが見れません。コンパイルしたらエラーも警告もゼロなのですが。また、pathはどのように設定するのでしょうか?

専門家に質問してみよう