これを純粋にソフトウェアで行うことは基本的に不可能です。ユーザーのマシンで実行されているプログラムがそれを読み取ることができる場合、ユーザーのマシンで実行されている別のプログラムがそれを読み取ることができます。ユーザーはその他のプログラムを制御し、ファイルの内容を抽出できます。
あなたはそれを難しくすることができます。人々は一般にこの機能を DRM と呼んでおり、一部の DRM スキームは破るのが困難になっています。復号化を処理し、保護されていないコンポーネントがデータにアクセスすることを許可しない特殊なハードウェアを使用すると、それらははるかに強力になり、破るのがより困難になります。しかし、結局のところ、それを回避する方法は常にあります。専用のユーザーはいつでもロジック アナライザーを適切なバスに接続し、そこからデータを読み取ることができます。
本当にクレイジーになりたい場合は、改ざん防止ハードウェアを組み込むことができます。基本的に、自己破壊機能が組み込まれたハードウェアであるため、ユーザーがコンピューターを開こうとすると、データが破壊されます。これはかなりユーザーに敵対的な動作ですが、状況によっては必要になります (敵に取得させたくない暗号化キーを含むカード)。
ただし、これはすべて非常に難しく、コストがかかるため、ユーザーの生活がより困難になります。そして、どこかに小さな穴が 1 つでもあれば、それを 1 人で割ることができれば、データを抽出してどこかに投稿することができます。ほとんどの人にとって回避するのが難しすぎることは問題ではありません。
そしてもちろん、これらのハードウェア ベースのメカニズムはすべて、ユーザーがそれらをサポートする専用のハードウェアを必要とします。純粋にソフトウェア ベースのソリューションを実行している場合は、ゲームは既に起動しています。ユーザーは、デバッガーをプログラムのメモリに向けるだけで、ファイルを読み取るときにファイルの内容を読み取ることができます。
したがって、そのような機能が必要かどうかを再評価する必要があります。このデータは本当に機密情報ですか? もしそうなら、それをあなたの管理下に置き、ソフトウェアが提供する機能へのゲートウェイを提供するサーバーとインターネット経由で通信するようにソフトウェアを要求できますか?
ユースケースについてもう少し情報を提供していただければ、特定の問題に対するより良い解決策を提供できるかもしれません。たとえば、カジュアルなユーザーから保護したいだけの場合は、暗号化して、暗号化を解除するキーとコードを難読化できます。これはあまり保護を提供しませんが、誰かがコンテンツをちらりと見ただけでコンテンツを見るのを防ぐことができます. ライセンスが必要な場合は、ソフトウェアがチェックバックするセキュリティ ドングルまたはライセンス サーバーの使用を検討してください。しかし、防弾のアプローチはありません。最終的に、エンドユーザーのマシンでこのデータを使用して何かを行おうとすると、プロセスからデータを抽出できるようになります。