-1

qtを使用してプロジェクトに取り組んでいます。アプリケーションを終了して再実行した場合でも、いつでもデータ(ファイルパスとパスワード)を取得または変更できるように、データ(ファイルパスとパスワード)を永続的に保存する必要があります。暗号化されたxmlファイルで解決しようと思いましたが、トレースなしで解決したいと思います。

4

2 に答える 2

2

トレースなしでコンピュータに何かを保存することは確かに不可能です。すべてがrootユーザーに表示されます。

ただし、他の人に変更させたくない場合は、暗号化して非表示にし、読み取り専用およびルート編集権限のみに設定できます。しかし、誰にもそれを見つけさせないことは不可能です。(ウイルスを作ろうとしていますか?)BIOSを入れても、それを見つける方法があります。

于 2012-10-03T15:24:11.953 に答える
2

ファイルまたはWindowsのレジストリなどの他のプラットフォーム固有のデータベースメカニズムを使用します。しかし、それは痕跡を残すでしょう。オペレーティングシステムをルートキット化せずに何かをローカルに保存したり、トレースを残したりすることはできません(それでも、ハードウェアにトレースを残すことになります。結局のところ、データをドライブに書き込んでいます)。

トレースを残さずに実行できることの1つは、ネットワークアクティビティが通常はログに記録されない(ただし監視できる)ため、ネットワークを介してサーバーにデータをリモートで保存することですが、このアプローチには2つの問題があります。

1)ユーザーにプライバシー上の懸念をもたらす可能性があります(私がアプリケーションのユーザーである場合、データがネットワーク経由で不明なサーバーに送信されるのを見たくありません)。

2)情報を取得できるように、どのようにして情報を特定できますか?ユーザー名、コンピューターのハードドライブID、およびMACアドレスを持つネットワークインターフェイスでハッシュを使用できますが、これらの一部が変更されると、データが失われます。アプリケーションのインストールごとに一意のIDを生成することもできますが、そのIDをローカルに保存する必要があり、それはトレースになります。

データの読み取り/改ざんを防ぐためのローカル暗号化は、キーを取得するための再現可能な手段が必要になるため、本質的に安全ではありません。どうしますか?アプリケーションで単純にハードコーディングすると、バイナリファイルリーダーで簡単に取得できます。明らかな理由により、「key.txt」という名前のファイルに含めることはできません。実行時に複雑なアルゴリズムを使用して計算できますが、いつかメモリにロードして、誰かが喜んで取得できるようにする必要があります。

于 2012-10-03T15:28:14.327 に答える