
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは
>exeファイルの中身のソースを確認する方法、つまりC++などの言語に戻す方法はありますか?
exe ファイルは、マイクロソフト製OSの規約による手順で機械語に変換されたバイナリファイルです。
従って、バイナリファイルを逆アセンブラなどの手法でニーモニックに戻して、パターンマッチングをするような(超めんどー)プログラム書かれたなら、ある程度は戻せるでしょう。 ある程度とは、exeファイル状態の時デバッグ情報は含まれ無いので定数名、変数名、関数名、その他マクロ、インクルードファイル名、クラス名、インスタンス名..など元のソースを復元するために必要な情報が決定的にありませんので、構文などの雰囲気だけひょっとしたら復元できるかも知れないという意味です。
>自作したexeファイルの中身のソースを勝手に解読されて、同じようなソフトを複製される可能性はありますか?
exeファイルからWindowsのソースを復元するよりも動作しているプログラムから、要求事項を読みとって設計仕様書を書けば、著名なOS上で動くものなら、exeファイルの中身を参考にせずとも新たに開発できてしまいます。
例えれば、小説であらすじが判れば、似たようなエピソードの物語を書くのは、元の小説を変にいじるより簡単ということです。 しかし、単にクローンを作っただけでは、当然オリジナリティがないのですぐに判ってしまいます(そんなもの恥ずかしいです)。 また同じOS上で動くものは、その機能の組み立て方も無限のバリエーションがあるわけでもないので似てきてしまいソースを比べたら同じ部分があったということはあり得ます。
独創的なアイデアであって、著作物(プログラム)を守りたいなら著作権法で守られるように考えておくべきでしょう。
No.3
- 回答日時:
アセンブラ・レベルでなら完全に読み取れます。
Cの場合は基本的にはソースがないと、exeだけではどうにもなりませんが、
関数名などは容易に想像できる形で埋め込まれているので、
ある程度わかります。
C++は基本的に関数名が変更される(パラメータの情報等が埋め込まれる)ので、Cほど容易には解析できません。(extern "C"を除く)
関数名変更のルールは規定されておらず、完全にベンダーに任せられています。ベンダーによっては、同じベンダーのコンパイラでもバージョンが違うと変更のルールが変わるものもあります。
よってC++の場合、解析は決してたやすくはないと思います。
完全に不可能とはいえませんが...
アセンブラとC++の両方に通じていて、使用されたコンパイラにも通じている人なら、完全に復元することは不可能にしても、ある程度の理解はされてしまう可能性は十分にあると考えます。

No.2
- 回答日時:
exeファイルの中にソースの情報がすべて入っているわけではないので、完全には無理だと思います。
ある程度なら、逆コンパイルなどのソフトがあると思います(私はやったことがないので詳しくは分かりません)。
また、exeファイルと別にソースを公開しているオープンソースのソフトもあります。
ただ、普通は、オープンソースでない場合は、元のソースを調べようとするような行為は、作者が禁止していることが多いようです(リバース・エンジニアリング禁止、などの言葉がマニュアルや利用規則などに書かれているなど)。
他人や会社のソフトを使う場合は、取り合えず、そこらへんをチェックしておいた方がよいと思われます。
また自作ソフトの場合は、完全には無理だが、ある程度は可能、ということで、公表する場合は利用条件としてそこは禁止と明記した方が良いと思われます。
No.1
- 回答日時:
逆コンパイラ用のツールはいくつかあります。
完璧に元に戻せるわけではありませんが、大まかな流れは掴むことができます。
ただ、私はプログラムは、有償無償に関わらず、フリー(日本でのフリーではなく、自由のフリー)で開発しますから、ソースも含めて公開してます。
フリーソフトウェアの定義 - GNU プロジェクト - フリーソフトウェア財団 (FSF) ( http://www.gnu.org/philosophy/free-sw.ja.html )
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
exeファイルの直接編集についての質問です。
その他(コンピューター・テクノロジー)
-
ゲーム
Windows 95・98
-
exeファイルの中身を見る方法はありますか?
C言語・C++・C#
-
4
EXEファイルの解析
その他(コンピューター・テクノロジー)
-
5
実行ファイル(.exeファイル)の作り方を教えて!
その他(プログラミング・Web制作)
-
6
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
7
exeファイルを作ったり改造したりするのは?
その他(プログラミング・Web制作)
-
8
アプリケーションのDLLファイルを開いたり、編集したりすることは技術的に可能ですか?
デスクトップパソコン
-
9
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
10
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
11
EXCELマクロのEXE化
Visual Basic(VBA)
-
12
ソフトの開発言語を調べる方法
その他(コンピューター・テクノロジー)
-
13
EXEファイルからの抽出
その他(ソフトウェア)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
簡単にEXEファイルを作れるプログラミング言語/開発環境
その他(プログラミング・Web制作)
-
16
アプリのプログラムを見るにはどうすればいいですか?
その他(ソフトウェア)
-
17
あるプログラムのコマンドライン引数を調べる方法について
その他(コンピューター・テクノロジー)
-
18
簡単なexeファイルの作り方。
その他(コンピューター・テクノロジー)
-
19
python エラー
その他(プログラミング・Web制作)
-
20
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
jlbという拡張子のファイルを開...
-
5
Docuworksで文書の一括回転操作...
-
6
BOX(ファイル共有)でエクセル...
-
7
xls ファイルのはどうやれ...
-
8
相手先の方がPDFを開けません
-
9
txtファイルから特定の文字列が...
-
10
拡張子.binの画像ファイルの開...
-
11
windowsでpkgファイルを開きた...
-
12
ISOファイルを家庭用DVDレコー...
-
13
.atc の拡張子のファイルを開け...
-
14
数個のWord、Excelファイルを上...
-
15
FCDファイルをISOファイルに...
-
16
DVDフォルダーとイメージファイ...
-
17
暗号化(アタッシュケース)し...
-
18
ファイルを破損させるソフト
-
19
拡張子 .lhdはどのようなソフト...
-
20
AutoCAD LT2000でラスターファ...
おすすめ情報
公式facebook
公式twitter