新規のWindows10 PC(64bit)を一律で設定したく、各種設定・プログラムのインストーラを実行する様なバッチファイルを組んでいます。
バッチファイルには重要な設定やパスワードについてソース上に生で書いている部分があります。
バッチファイルから目立たないようにするため、設定ファイルを用意しそれら機密情報を記載しておりますが、バッチファイルではソースが丸わかりなので読み解きながら進めれば設定ファイルにまでたどり着くことが可能です。
今回、セキュリティ向上としてexeなどの実行ファイルを一つ用意し、そこからバッチファイルを呼び出す様に考えております。
以下の条件で実行ファイルが作成可能なプログラミング言語を探しております。
- 無償
- コンパイルなど暗号化を行い、実行ファイルの意図的に解析させない(会社内なのでそこまで厳密には考えていません)
- 新規PCの設定のために使用するので、実行のためにフレームワークやライブラリなどの実行環境を必要としないものが望ましいです。
以上です。
素人考えなので大いに思い違いをしている可能性がありますが、
ご存知の方がいらっしゃいましたらお教え頂けますでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
まず順を追って
1.コンパイル言語
選択肢としては.NET系(C#/F#/VB)、C、Goがいいでしょう。それぞれ注意点だけ述べます。
-
.NET系(C#/F#/VB): Windowsのバージョンによってプレインストールされている.NET Frameworkのバージョンが異なります。今回はWindows 10のみ対象のようですが、同じWindows 10でも1809とか1903といったアップデートのバージョンによっても異なるときがありますので、注意が必要です(特に企業などでLTSBを用いているときは古いままがあり得る)。後方互換がありますので、対象となるWindows 10のうち一番低いアップデートの物にあわせると良いでしょう。最新版や.NET Coreは使わないようにして下さい。
なお、無償のVisual Studio Communityは大企業だと商用利用はできない(OSSとして公開するなら大企業でもOK)ので、コンパイラであるBuild Tools for Visual Studio 2019だけを使って、エディタはVisual Studio Code等を使って下さい。 -
C: 標準Cライブラリ関数のみを使ってMinGW GCCでコンパイルすれば、Windowsにプリインストールされているライブラリ(msvcrt.dll等)のみに依存するプログラムを作ることができます。しかし、C++は別途標準C++ライブラリに依存するため、C++にしてはいけません。また、Visual Studio C++を用いる場合も、そのままコンパイルするとそのバージョンのVisual Studio C++ランタイムに依存してしまうため、使ってはいけません(依存を外す方法はあります)。
-
Goは単体exeを作る方法として、もっとも効果的です。注意事項は特にないと思います。
2.難読化だけが目的
単に見られるのだけを防ぎたいというのであれば、JScriptを難読化する方法があります。JavaScript難読化ツールはたくさんあるので、好きな物を選ぶと良いでしょう。ただし、JScriptはJScriptであって厳密にはJavaScriptでは無いことに注意してください。どんなに難読化しても解析すればパスワードなどはわかります。
私は知りませんが、VBScript等もそういうツールがあるかも知れません。
3.本当に見させたくない場合
本当の意味での暗号化をする以外ありません。作業が少し手間になっていても、exe実行、復号するためのパスワードを入力とする必要があります。いろいろな方法がありますが、手軽に行える方法を私は知りません。
4.ローカルに残らなければ良い
パスワードなどが書かれた設定ファイルは全てファイルサーバー上に置き、一般ユーザーには見えないようにします。作業者はサーバー接続のためのパスワードだけ入力する必要があります(バッチファイルにパスワードを書いてしまうと、バッチを消し忘れたときに大問題になる)。
個人的にはこの方法をオススメします。この方法の利点は、後から設定内容に変更があったとき、ファイルサーバー側のファイルを変えれば良いだけという点です。また、最後に実行ログをサーバー側にアップロードし、集計することで、作業の進捗などを管理できるというのもあります。10年以上前にそうやって端末展開したことがありましたが、特に大きな問題は起きませんでした。
投稿2019/08/22 12:55
総合スコア21741
0
コンパイルなど暗号化を行い、実行ファイルの意図的に解析させない(会社内なのでそこまで厳密には考えていません)
コンパイルと暗号化は違うんですが、要はバイナリ形式で配布したいってことですねたぶん。
新規PCの設定のために使用するので、実行のためにフレームワークやライブラリなどの実行環境を必要としないものが望ましいです。
メジャーどころのコンパイル型言語だと意外と選択肢が限られるんで、ぱっと思いつくところではGoとか。
ランタイムライブラリ等が不要で、ポータブルなEXEが作成できて、でスクリプト言語ではない、という条件なら満たしている気がします。(自分はほぼ使ったことがないけど)
あとはDelphiとか。(コメントで指摘ありましたが、無償版の利用条件が厳しいのでたぶん候補から外れますね)
言語選びに困ってる人にメジャーじゃない言語を勧めるのもアレなんで、意外と難しい。
投稿2019/08/22 10:12
編集2019/08/22 21:25総合スコア8947
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/22 10:40
2019/08/22 11:21
2019/08/22 11:48
2019/08/22 11:57
2019/08/22 13:05 編集
2019/08/22 12:23
2019/08/22 22:18 編集

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/26 07:52