2017-03-13 8 views
-2

私はまだQTを勉強しています。私はプログラムを設計し、いくつかのデータを保存して保護したいと思っています。クリエイターアプリケーションはファイルに書き込んでおり、簡単に変更や削除が可能です。アプリケーションデータを安全に保存でき、アプリケーションを破損することなく他の誰もアクセスできないような方法はありますか?外部データファイルを不正な変更から保護する

これは愚かな質問かもしれませんが、私は実際にいくつかのアイデアを楽しみにしています。 ありがとうございました。

答えて

0

ルート/管理者アクセス権を持つユーザーのデータを書き換えることはできません。ただし、アプリケーションが不正な変更を拒否して終了するようにすることもできます。

あなただけが何か嘘を行うことができ、アプリケーション内から変更することができる外部データファイルをしたいと仮定すると、この:

データファイルは、アプリケーションによって変更されるたびに、データのハッシュ値を計算しますそれを暗号化してデータファイルに格納します。データを読み込むたびに、最初にデータをハッシュし、次に格納されたハッシュを読み込み、解読してデータハッシュと比較します。同じでない場合は、アプリケーションを終了します。

誰かが外部から変更を加えた場合、データファイルの暗号化されたハッシュ値を正確に提供できないため、ハッシュチェックが失敗します。秘密鍵を持っている人だけが、アプリケーションが受け入れる変更を加えることができます。

+0

そのような仕掛けは、逆アセンブラで倒すのは難しくありません。あなたが行う必要があるのは、比較をスワップするだけで、データファイルのハッシュ**がアプリケーションを終了したときにのみ**一致するようになります。それほど私はそういうことをするつもりはない... *咳*。 – MrEricSir

+1

保護されていない保護スキームはありません。私は、OPアプリケーションが、逆アセンブルとコーミングにふさわしい価値の高いターゲットとみなされることは非常に疑っています。プロフェッショナルグレードのソフトウェアの多くは、同じアプローチを使用しています。その特定の事例ではそれ以上のものです。 – dtech

+0

"そのような仕掛けは逆アセンブラで撃破するのが難しくありません。"それには終わりはありませんが、人々はコピープロテクトを使用しています。現実の世界がバイナリではないからです:) –

関連する問題