This question already has an answer here:
I was reading the CIA leaked documents on wikileaks, I saw in their "best practices" section that it was advised to encrypt all strings and config information and to de-crypt in memory when needed.
I was wondering how this works. I understand how to on the fly decrypt and the rationale behind having config strings in your program encrypted; so that anyone trying to reverse engineer the program cant see any meaningful strings.
But how do you store the key? if this is an autonomous virus, the key to decrypt those strings and config data has to be also stored in the program? how do you store the key so that the program can use it, but a reverse engineer will not find it?
Unless of course I have misunderstood the type of program that would employ this practice.