I take the chance to write this answer to advise you against messing with the executable itself. As for why, here are the reasons stated in the comments and some of mine:
- As Rik said, most likely the developer of said program didn't hardcode the actual expiration date (as that would entail building another program as soon as a year passed). That would mean higher maintenance and support costs for said developer.
- Even if he did hardcode the date, there is no consensus on how to store it. If the expiration date is a string, you might have some luck because as Frank said, most strings are stored as is inside an executable. This isn't a rule, however, and the string might be encrypted or, depending on how the compiler optimized the code, it might be buried inside binary text you can't easily understand.
- Assuming you could disassemble the program, you would then need to understand the thousands of lines of code that went into the program and detect where the expiration date is stored or called from. However, and depending on country and legislation, this activity is either frowned upon or illegal.
Advices aside, I'm piggybacking on what Rik said, and expanding it a little.
You can create a batch file (as you said .exe files, I'm assuming Windows) using the following commands:
SET CUR_DATE=%DATE% DATE <insert your pretended date here> <start your program here> DATE %CUR_DATE%
Although I haven't tested it, this supposedly does the following:
- Stores the current date, as given by %DATE%.
- Sets the PC's date to the one you want, using the DATE command.
- Runs the program you want.
- Resets the date to the current one, as soon as your program exits.
You can store this batch inside the program's directory, as such you only need to write the program's name, rather than the full path. Be consistent, however, on the date you input, as it needs to be in the same format as what your system expects. See the link about the DATE command for more info; alternatively just do echo %date%
to see what format your computer expects the date you input to be.