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

わんくま同盟

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

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


(過去ログ 24 を表示中)
■10747 / )  Re[3]: アルゴリズムについて
□投稿者/ れい (244回)-(2007/11/25(Sun) 07:13:10)
2007/11/25(Sun) 07:26:25 編集(投稿者)

No10737 (Jitta on the way さん) に返信
> 分解が足りないと思います。

どんな関数、コンポーネント、ライブラリがあるか分からない場合は
一個分解してその機能が提供されて無いか確認して、もう一個分解して…
という感じで開発すると思いますし、
初めから全部細かくせずに、開発しながら分解していく人もいますから、
「チェック」と「表示」の二つに分けるのは最初の一歩としてはベストの手だと私は思います。

むしろ気になるのは、
No10728 (秀璽 さん) に返信
> 1システムファイルをチェックする
>  チェックの仕方ですが、この部分は、どのような関数を使うのでしょうか?
> 2破損があれば警告をmsBoxで表示する
>  どのような状態を破損と認識するのか?

この分解が変なことです。
「どのような状態を破損と認識するのか?」は
「1システムファイルをチェックする」に入ってないと変です。

No10741 (カンタービレ さん) に返信
> ぎゃぴ・・・チェックする部品探してしまっていた私。。(汗)
> ...
> 後学までに便乗で教えて下さい。
> ...
> チェックサムを計算するにはCheckSumMappedFileあたりを使うことになるでしょうか??(自信ナシ)

現在Windowsで使われてるのはPEフォーマットで、その仕様書は
http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx
ここにあります。
カンタービレさんのリンク先はたぶん3.1時代のもので、「NE」フォーマットです。
#懐かしい:D

で、PE内部のCheckSumはWindowsSpecificHeaderにあって、アルゴリズムは非公開です。
CheckSumMappedFileかMapFileAndCheckSum辺りを使えば変更が確認できたのですが、
最近はAuthenticode関連で修正が入ってるので、私にはよくわかりません。
たぶん、Authenticodeで署名するとCheckSumは一致しなくなります。
Authenticodeの部分を抜いてCheckSumを取るのだと思いますが、方法も真偽のほども知りません。

MapFileAndCheckSumはイメージを読みこまないとCheckSumを確認できません。
ImageHlp.dllの関数たちは遅くてやたらリソースを食います。

しかも、PEのCheckSumは必須でないので、
間違ってるdllやexeがたくさんあります。(昔は。今は分からない。)

そんなわけですので、この辺を使うのはお勧めしません。

結局、

>1システムファイルをチェックする

>ぎゃぴ・・・チェックする部品探してしまっていた私。。(汗)

はJittaさんの言うように、より細かく分解しないとだめだと思います。

追記。
> □投稿者/ カンタービレ (100回)-(2007/11/25(Sun) 00:29:28)
100回!

返信 編集キー/


管理者用

- Child Tree -