konishiさんへ

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: konishiさんへ

by konisi » 2006年3月29日(水) 22:33

すんません、CreateDialogではなくDialogBoxでした。
それなりに適当なので参考程度にしてください。

やってみたんですけど..

by ベストマッチ » 2006年3月29日(水) 20:30

やってみたんですけど無効のエラーが5箇所くらいか表示されて
私の力じゃ無理かと思いまして返信いたしました。
どうかソースコードと解説の投稿をお願いします。

konishiではなくkonisiです。

by konisi » 2006年3月29日(水) 01:56

外部にファイルを出力させる方式ならたやすいです。


MainWndとは別のウインドウに使用許諾書を作る。
Createイベント内で、例えばfast.iniファイルがあるかどうかを検索。
fast.iniファイルが正規のものだったら使用許諾書用のウインドウを表示せずにCreateイベントから抜ける。
fast.iniファイルが正規のものではなかったり、ファイル自体が無い場合は使用許諾書用のウインドウを表示させる。(CreateDialog関数を使う等する。)

使用許諾書に、EditBox一つとCommundButton二つを用意しておく。

同意しない という方のボタンを押された場合は、MainWnd_Destroy()関数を直接呼び出して終了させる。

同意する という方のボタンを押された場合は、正規のfast.iniファイルを作ってから、使用許諾書のウインドウを消す。(CreateDialog関数で作ったウインドウはEndDialog関数を使う。)

外部ファイルについて。
単純なコピーでの攻撃を回避したい場合は、半角文字列あるいは改行文字列の直後にバイナリデータで言う0を挟んでおくといい。バイナリエディタがない環境だとコピーするのが面倒である。
ファイル自体をコピーされることによる攻撃については、Windowsのシステムの状況(長い間不変のもの。OSの種類やCPUのクロック数等。)や環境変数をもとに暗号化された文字列を用いるなどするとよい。そうすればまったく同じ環境でない限りそのファイルは無意味なものになる。

レジストリに正規のデータを書き込むという手法もある。でもやや面倒。

konishiさんへ

by ベストマッチ » 2006年3月29日(水) 01:32

Windowをはじめて起動したときだけ別のWindowを表示する
(使用承諾書のようなもの)にはどういったコードを書けばいいか
教えてください。

ページトップ