It depends on how they are stored in your file. If you didn't compile in unicode, chances are that the strings are stored as straight ASCII. Search and replace "Program1" with "Program2".
They could be stored in Unicode or UTF-8 as well, in which case you will need to search and replace the proper binary string. For Unicode, use wchar_t like
helios suggested. For UTF-8, they will look exactly like they do in ASCII (for this particular string).
One caveat: you can make the string
shorter, but
you cannot make it longer. (Not with a simple search and replace.)
However, if you want modifiable strings, you should do one of the following:
1. Store them as resource strings. Then you can simply modify the exe's resources. (ELF files don't have "resources" defined the same way that Windows PE32 files do, but that doesn't mean you can't have them. Check out
http://ktown.kde.org/~frerich/elfrc.html for some cool stuff.)
2. Get them from a DLL. Then you can simply change the DLL to use different strings. (On Unix, DLLs have a
.so extension.)
Both of these methods are useful for internationalization. (There are variations, but generally the user program is aware that certain strings may be modifiable.)
Good luck.