C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 実行ファイル(exe)にバイナリデータを追加する


(過去ログ 157 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■91406 / inTopicNo.1)  実行ファイル(exe)にバイナリデータを追加する
  
□投稿者/ take (1回)-(2019/06/21(Fri) 14:52:03)

分類:[Windows 全般] 

VC(MFC)やC#,VB.NETで作成した実行ファイル(exe)を
バイナリエディタなどで開き、バイナリデータを追加したいと思っています。

実際にexeファイル(VC(MFC)とC#)の最後に32バイト追加してみましたが、
普通に動作している様に見えます。

そこで、質問なのですが
上記の事をしても、問題なくexeは動くものなのでしょうか?
それとも、たまたま動いている様に見えているだけなんですかね?


※ 本来ならば、設定ファイルやレジストリを使用する事は分かっています。
こんな事ができるのかな?という興味本位での質問となります。

引用返信 編集キー/
■91408 / inTopicNo.2)  Re[1]: 実行ファイル(exe)にバイナリデータを追加する
□投稿者/ 774RR (710回)-(2019/06/21(Fri) 17:31:11)
短い答え:まったく問題ないっす

長い答え:
古くは MS-DOS の時代から EXE フォーマットのファイルってのはあるわけだけど、その昔から伝統的に
EXE ヘッダなるものに「このファイルを実行するにあたってここまで読め」というサイズが書かれてます。
んで MS-DOS (MZ ヘッダ) EXE や Windows (PE ヘッダ) EXE もヘッダ内のサイズまでしか読まないので
正規のファイルの後ろにリソース部分を添付するってのはその昔から行われてきた正当なテクニックです。
UPX なんかまさにこの機能を使ってた。

電子署名をつけようとかすると別な問題が発生するかもしれないけど、
自分で作って自分で動かす分にはまったく一切何も問題ないっす。

引用返信 編集キー/
■91409 / inTopicNo.3)  Re[1]: 実行ファイル(exe)にバイナリデータを追加する
□投稿者/ とっちゃん (603回)-(2019/06/21(Fri) 17:52:06)
No91408 (774RR さん) に返信
> 電子署名をつけようとかすると別な問題が発生するかもしれないけど、

データをくっつけてから署名すれば問題ありません。
逆はもちろんダメ。

理由は改ざんされてるから。。。ですw


No91406 (take さん) に返信

> ※ 本来ならば、設定ファイルやレジストリを使用する事は分かっています。
> こんな事ができるのかな?という興味本位での質問となります。
>
本来なら、という意味で言えば、設定ファイルなどをつけてインストーラで配布!
ですね。

利用しているVSのバージョンにもよりますが、msi形式なら、VSセットアップ、InstallShield、WiX というあたり。
加えて、.NET Framework アプリ(C++/CLIを除く)なら、ClickOnce という選択肢もあります。

そのほかには、InnoSetup という選択肢もありますね。

あとは、ごく最近の環境だけでいいなら、DesktopBridge や、MSIX というあたりも選択肢になりますね。

#一応違う技術なので、名前は分けておく。<対有識者向けw

引用返信 編集キー/
■91422 / inTopicNo.4)  Re[1]: 実行ファイル(exe)にバイナリデータを追加する
□投稿者/ take (2回)-(2019/06/24(Mon) 13:37:43)
774RRさん、とっちゃんさん

情報ありがとうございます。
PEヘッダーとか初めて聞きました。


「EXE フォーマット」で検索してみました。
色々なページを読んでいるところですが、
今までEXEファイルの構造とか、気にもしていなかったので、
ちょっと面白かったりします。


大変勉強になりました。
ありがとうございまいた。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -