JaneK
November 26th, 2000, 17:24
Hi Kayaker and others,
It was not too difficult to both patch the program and find correct serial for my name. I have however some problems to understand how the correct serial is generated.
After the new string "FirstnameHappyIconName" is created (at 0041409D I think) various string operations are performed (moving between memory locations, scan for blanks etc). then at 004140D9 I find first character of my "Firstname" in cl and a test cl, cl is performed. In my case the result is not equal, so I do not jump here thus entering a routine that is processing one by one each character of "FirstnameHappyIconName" string until end of string is found, so until at 004140FA I do not jump.
Then my serial appears in edx, correct one is found at 00414116 in ecx (in hex) and if equal I jump to registered.
My doubts are:
1. test cl, cl at 004140D9 - what is it actually doing and when the result will be equal? (so we jump and bypass the procedure between 004140DD and 004140FA).
2. what is really happening between 004140DD and 004140FA? What is the outcome of this loop?
3. what is the call at 00414104 doing? I tried to trace it but without success - I only found some kind of check for strange characters like "-", "+" etc.
Hope someone will find time to answer
Thanks
JaneK
It was not too difficult to both patch the program and find correct serial for my name. I have however some problems to understand how the correct serial is generated.
After the new string "FirstnameHappyIconName" is created (at 0041409D I think) various string operations are performed (moving between memory locations, scan for blanks etc). then at 004140D9 I find first character of my "Firstname" in cl and a test cl, cl is performed. In my case the result is not equal, so I do not jump here thus entering a routine that is processing one by one each character of "FirstnameHappyIconName" string until end of string is found, so until at 004140FA I do not jump.
Then my serial appears in edx, correct one is found at 00414116 in ecx (in hex) and if equal I jump to registered.
My doubts are:
1. test cl, cl at 004140D9 - what is it actually doing and when the result will be equal? (so we jump and bypass the procedure between 004140DD and 004140FA).
2. what is really happening between 004140DD and 004140FA? What is the outcome of this loop?
3. what is the call at 00414104 doing? I tried to trace it but without success - I only found some kind of check for strange characters like "-", "+" etc.
Hope someone will find time to answer

Thanks
JaneK