3

パスワードやサーバー アドレスなどの重要な情報を、Delphi コンパイラによって生成された実行可能ファイル内に格納したい場合、ファイルの末尾など、最終的な実行可能ファイルのサイズやバイナリ構造を知らずに、どうすればそれを実行できるでしょうか?

サイドノート:

保存されるテキストはすでに暗号化されています。また、一部のコンピューターでは、特にユーザーが管理者ではない場合、Windows がレジストリへの書き込みアクセスを許可せず、レジストリの変更を監視するためのハッキングがあり、賢いユーザーは新しい Windows レジストリ エントリを見つけることができます。

コメント

この質問が反対票を投じられたのはなぜですか? これは達成可能です!ほとんどの人にとって面白くない場合は、測定しません。

私は、自分自身を更新する衛星テレビ信号デコーダーのように、BIOS やその他のアップグレード可能なファームウェアについて考えています。そんなことがあるものか?

4

2 に答える 2

4

.rc ファイルを使用して、データを最終的な .exe ファイル内のカスタム リソースに入れることができます。その後、TResourceStream などを使用して実行時にそのリソースにアクセスし、必要に応じてそのコンテンツを復号化して使用できます。ただし、ファイルは OS によってロックされているため、.exe の実行中にリソースに新しいデータを書き込むことはできません。新しい設定を書き込む必要があり、レジストリへの書き込みアクセス権がない場合は、代わりに別のファイルを使用する必要があります。Windows には、ユーザーがユーザー プロファイル内に書き込みアクセスできる特別なフォルダーが用意されています。

于 2012-07-03T22:18:03.003 に答える
3

文字列テーブルリソースを作成するのは1つの方法です。

テキストファイルを作成します。このようなものを含むsecretstuff.rc(.rc拡張子が必要)と言います。

STRINGTABLE
{
  1,"This is my encrypted password in say Base64"
}

BRCC32を使用して.resファイルにコンパイルします。

コンパイラ指令を使用して、関連するコードに含めます

{$R secretstuff.res}

その後、TResourceStreamを使用してアクセスします。

それをもう少しうまく管理したい場合は、exeではなくdllにそれらを詰め込むのが賢明かもしれません、そしてあなたはdllの新しいバージョンを提供することによって物事を更新することができます。

より詳細な例があります。別の目的ですが、同じ原則がここにあります

于 2012-07-03T22:24:39.557 に答える