I'm reverse engineering a binary that has very generic, standard xor+math encryption on every string. I've written IDAPython to find each one(they're used in a generic way) and decrypt them, then add the decrypted string as a comment / try to rename the variable.
This doesn't tell IDA that offsets to these blocks is actually a string, though. For example, it won't show up in idautils.Strings
(necessary for plugins/the rest of my script library...), the strings view, etc.
I guess it wasn't clear: Strings are stored in encrypted blocks statically. They are only decrypted during runtime but are otherwise used just like normal string references.
I could replace the encrypted blocks with their decrypted result in the IDB, but that is less than ideal as it creates an IDB that isn't 1:1 to the file statically.
Is there a way to tell IDA to identify an address as a string with a specific value?