忙しい現代人の腰&肩のお悩み対策!

すいません。
教えて下さい。

タイトル通りなんですが自分自身が改竄されていないか確認したいです。

そこでMD5(外部ライブラリ使用)を利用してハッシュ値のつけ合わせをと考えたのですが
そもそも、MD5のハッシュ値をVBSプログラムに追加した時点で、当然また値が変化してしまうのですが
どうにかして実装する事は可能でしょうか?
MD5変更後のハッシュ値が、わかれば良いのですが、、、(><;

よろしくおねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ちゃんとした署名を使えば,自身をSigner.VerifyFileの対象にすることで,署名を確認できます。


コードサイニング証明書をちゃんと取得しようとすると結構な値段がしますが……。

MSDN: セキュリティと Windows Script Host
https://msdn.microsoft.com/ja-jp/library/cc39252 …
MSDN: VerifyFile メソッド
https://msdn.microsoft.com/ja-jp/library/cc36439 …


それ以外の方法であるならば,問題ないように構造を作るしかありません。
メールで使われるPGP/MIMEなどでは,text/plainであるテキストの末尾に署名を埋め込む方法を用意していますが,vbsでその方法は使えません。
なので,NTFSの代替ストリームに署名情報を入れる,などの方法をとる必要があるかと思います。

ただ,根本的にテキストである以上,改竄チェックも含めて改竄されると対抗策はないですが……。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qファイルのハッシュ値って何ですか?

同一のファイルを検索し削除するソフトで、ハッシュ値等を比較して同一かどうかを判断しるというものがありました。
このハッシュ値というのは何ですか?

Aベストアンサー

ハッシュ値、大きくアバウトに言ってしまうと、データを特定するするために、あるアルゴリズム(関数)から算出される値。
簡単な例では、データの同一性をチェックするための「チェックサム」もその1つ。コンパイラの高速テーブル検索でもハッシュが使われる。
「チェックサム」では、データを一定のビット数で区切ってその総和を、送り側で計算してデータに付加しておく。これが「チェックサム」といわれるの由来。
受け側でこの「チェックサム」を除く、純データの「チェックサム」を計算し直し、付き合わせることでデータの同一性をかなりの高確率で保証できる。

2006/07/05
株式会社タケキ IT教育事業部 出口 雄一
http://itpro.nikkeibp.co.jp/article/COLUMN/20060628/241960/
連載目次へ >>ポイント
●あるデータをハッシュ関数を使って計算した結果がハッシュ値である。メッセージ・ダイジェスト、フィンガープリント(指紋)とも呼ばれる
●ハッシュ値は基データのサイズに関わらず固定長になる。長さはアルゴリズムによって異なる
●ハッシュ値は「基データが異なれば、その計算結果であるハッシュ値も異なるのが普通で、同じハッシュ値になることはほとんどない」「ハッシュ値とハッシュ関数がわかっても、基のデータを特定できない」という特徴がある

チェックサム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
http://ja.wikipedia.org/wiki/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0
チェックサム (Check Sum)とは誤り検出符号の一種である。符号値そのものを指すこともある。他の誤り検出符号と比べて信頼性は低いが、それでも単純計算で99.5%以上(1オクテットのチェックサムの場合255/256、2オクテットなら65535/65536)の検出率がある上にアルゴリズムが簡単であることから、簡易な誤り検出に用いられる。
また、誤り検出その他データの検証のための符号として広く使われてきた経緯から、俗に誤り検出符号自体の代名詞としても用いられる場合がある。例えばCRCの符号値やMD5のハッシュ値を、それぞれ「CRCチェックサム」「MD5チェックサム」と呼ぶことがある。これらはアルゴリズムが異なりsumでもないため「チェックサム」と呼ぶことは明らかな誤解であるものの、「(チェックサムよりも)信頼性の高い誤り検出符号」程度の意味で使われる。

ネットワークを利用してのデータ送信時、IPパケットにデータを分割した際のIPヘッダの検査での利用例を以下に示す。
1.IPヘッダのチェックサムフィールドにゼロをセット
2.IPヘッダを16ビット単位で加算
3.総計の下位16ビットの補数をIPヘッダのチェックサムフィールドへセット
4.送信
5.受信したらIPヘッダを16ビット単位で加算
6.総計がゼロなら正常(チェックサムフィールドにはチェックサムフィールドがゼロの場合のチェックサムの補数がセットされているので、総計=チェックサムフィールド以外のチェックサム+チェックサムフィールド以外のチェックサムの補数=ゼロになれば正しい

ハッシュ値、大きくアバウトに言ってしまうと、データを特定するするために、あるアルゴリズム(関数)から算出される値。
簡単な例では、データの同一性をチェックするための「チェックサム」もその1つ。コンパイラの高速テーブル検索でもハッシュが使われる。
「チェックサム」では、データを一定のビット数で区切ってその総和を、送り側で計算してデータに付加しておく。これが「チェックサム」といわれるの由来。
受け側でこの「チェックサム」を除く、純データの「チェックサム」を計算し直し、付き合わせる...続きを読む

QVBSで"をエスケープする文字は?

VBSで"をエスケープする文字はなんでしょうか?

Aベストアンサー

エスケープといった考えが VBSではなかったように思います

"をあらわすには "で括る必要が生じます
たとえば "abc" といった内容なら """abc""" といったリテラルになります
一番外側の "のペアが 文字列としての"になります

"ab"cが欲しいなら """ab""c"
a"bc"が欲しいなら "a""bc"""
a"b"cがほしいなら "a""b""c"
といった具合になります

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。

QVBScriptからDLL参照設定したい

初めて質問します。宜しくお願いします。

VBScriptからある業務アプリのAPIを操作したいと考えています。参照したいDLLは分かっているのですが参照設定の方法が分かりません。「Declare」など宣言することによって参照設定することは可能でしょうか。そもそもVBScriptからはDLLへの参照設定はできないのでしょうか。

ちなみにOSはWin2000サーバまたはWin2003サーバを想定しています。

以上、宜しくお願いします。

Aベストアンサー

出来ません。
http://msdn.microsoft.com/library/ja/script56/html/vsgrpNonFeatures.asp

ラッパー(ActiveX.DLL)をVB等で作るとか。

QVBscriptからバッチに変数を渡すには?

VBscriptからバッチに文字列を渡したいのですが、どう書いたらいいでしょうか?

VBscriptにWscript.Quit 1と数字を入れた場合、バッチ側は%errorlevel%で取得できると思うのですが、文字列は出来ませんでした。

よろしくお願いします。

Aベストアンサー

こんな感じでできると思います。

[VBS側]
'環境変数に格納したい値をEchoして終了
WScript.Echo kekka

[バッチ側]
for /f "usebackq tokens=*" %%i IN (`call cscript //nologo <vbsフルパス>\hoge.vbs`) DO @set vbskekka=%%i

※INの中のクォートはバッククォートである点に注意

私はこんな感じでよく使っていて、もちろん文字列もOK
ですが、日本語が扱えるかどうかは未検証です。
(半角英数以外はつかった事がない)

Qbatファイルで、call使っても戻ってこない

こんにちは
教えてほしいことがあります。

batファイルで他のbatファイルを実行するためにcallで呼び出すと、処理がまた戻ってくる事を知り、
以下のようにやってみたのですが、戻ってきている様子がありません。

どこが間違っているのか教えていただければと思います。

以下file-backup.bat

echo 処理開始 >> %LOG%
date /t >> %LOG%
time /t >> %LOG%

C:\****\Backup\FastCopy198\fastcopy.exe /cmd=force_copy /auto_close /open_window /error_stop=TRUE /log /from_date="-2D" "D:\file2" "/to=\\********\file2"

@echo off
call "Z:\file-backup2.bat"

echo 処理終了 >> %LOG% ←---これ以下がログファイルに表示されない
time /t >> %LOG%
echo. >> %LOG%


ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。

環境はwinserver2008です。

ご教授お願いします。

こんにちは
教えてほしいことがあります。

batファイルで他のbatファイルを実行するためにcallで呼び出すと、処理がまた戻ってくる事を知り、
以下のようにやってみたのですが、戻ってきている様子がありません。

どこが間違っているのか教えていただければと思います。

以下file-backup.bat

echo 処理開始 >> %LOG%
date /t >> %LOG%
time /t >> %LOG%

C:\****\Backup\FastCopy198\fastcopy.exe /cmd=force_copy /auto_close /open_window /error_stop=TRUE /log /from_date="-2D" "D:\file2" "/to=\\*****...続きを読む

Aベストアンサー

>どこが間違っているのか教えていただければと思います。
--> call で戻っている可能性があるのに断定している処。

> ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。
--> それは考えがおかしい。そう思うなら
  echo 処理終了
  とでも変えればいいです。表示されたら戻っている訳ですから。
  そもそも %LOG% には絶対パスでファイル名をセットしていますか?
  多分、カレントが変わってしまっていると予想します。


人気Q&Aランキング