How to put configuration information inside the executable?

狂风中的少年 提交于 2019-12-07 14:01:16

问题


If we want to store critical information, like passwords and server addresses, inside the executable file generated by the Delphi compiler, how can we do that, without knowing the final executable size and binary structure, like at the end of the file for example?

Side note:

The text to be stored is already encrypted; and in some computers the windows don't give access to write in the registry, specially when the user is not administrator, and there are hacks to monitor registry changes and the smart user can find the new windows registry entry.

Comment

Why this question was down voted? This is achievable! Doesn't meter if not interesting for most people.

I think about the bios and other firmware upgradeable, like satelite tv signal decoders that update themselves. How is that possible?


回答1:


Create a string table resource is one way.

Create a text file. say secretstuff.rc (has to have .rc extension) with something like this in it.

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

Compile it to a .res file with BRCC32.

Include it in the relevant code with a compiler directive

{$R secretstuff.res}

After that you access with TResourceStream.

If you want to manage it a bit better might be wise to stuff them in a dll instead of an exe, then you can update things by delivering a new version of the dll.

There's an example with a it more detail, another purpose but same principle here




回答2:


You can use an .rc file to put your data into a custom resource inside the final .exe file. You can then access that resource at run-time, such as with a TResourceStream, and decrypt and use its content as needed. However, you cannot write new data into the resource while the .exe is running, as the file is locked by the OS. If you need to write new settings, and do not have write access to the Registry, you will have to use a separate file instead. Windows has special folders set aside that users have write access to within their user profiles.



来源:https://stackoverflow.com/questions/11319805/how-to-put-configuration-information-inside-the-executable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!