3

私は約1年前にゲームをしていました。少しスピードアップしたいので、メインの.pyファイルを編集して、最初にpsycoを追加しました。ゲームはより速く、より良く実行されましたが、スコアを送信できませんでした。私はファイルに入って、それ自身のmd5sumをチェックしていました。私を混乱させた部分は、ファイルにmd5が含まれていることです。私の質問は、ファイルのmd5を、まだ持っていないmd5を含むファイルの合計で取得するにはどうすればよいかということです。私にはキャッチ22のようですが、彼らはそれをしました。

私がそれを十分に説明したことを願っています。例:

ファイル:Example.example

check md5 of Example.example
If md5 I just obtained == "###################################"
allow send score.
4

3 に答える 3

5

埋め込みているプログラムのMD5を変更すると、プログラムのMD5が変更されるため、MD5を計算しているプログラム内にプログラムのMD5を(簡単に)埋め込むことはできません。しばらくループすると、最終的には安定したポイントに到達する可能性があります。繰り返しますが、そうではないかもしれません。「しばらく」は通常2^128ステップを意味するため、太陽が赤色巨星になった後のように、非常に長い時間がかかります。

だからトリックがあります。プログラムが独自のMD5を計算するとき、埋め込まれたMD5がどこにあるかを明確に認識し、すべてのNULLと同様に設定値を使用します。

ハッカーを困難にするために、すべてのNULLを使用しないでください---SALT値を使用してください。バイナリでその値を難読化します。これで、プログラムを編集した後で、埋め込まれたMD5を編集して「修正」するのが難しくなります。

于 2011-02-16T00:31:06.427 に答える
1

これらの場合に通常行われることは、MD5を計算するときに、実際の数値がスペースやゼロパディングなどのプレースホルダーに置き換えられることです。

これは、IPSECなどの暗号化メカニズムで広く使用されています。

于 2011-02-16T00:31:45.103 に答える
0

それを行うのは非常に難しいでしょう、あなたはそれを総当たり攻撃する必要があるでしょう。それが赤いニシンではなく、実際の検証が他の場所で行われていることを確認しますか?

とにかく良いセキュリティを無効にするようには見えません、あなたがこのようにアルゴリズムを変更するのを止めるにはどうすればよいですか(あなたの擬似コードを使用して)

check md5 of Example.example
If md5 I just obtained != "###################################"
allow send score.
于 2011-02-16T00:32:10.207 に答える