Joda
July 12th, 2001, 01:08
Heya.
Well I have a shareware program here that uses a sonewhat easy serial protection sheme, but I can't find the right serial.
That wouldnt be so interesting, but the facts are this:
(i can't post code, cauz I'm at work, hope it's clear nevertheless)
1. Name and Serial are read in with GetWindowText
2. An algo calculatesa serial from the name
3. MySerial and AlgoSerial are compared
If they are the same:
"The serial was right, but it doesnt work with this version of the program"
If they are not equal:
"Sorry wrong serial."
Weird.
Well i traced a bit thru the code after the JNE and found that some memory is tested, if the word saved there is between 1 and 6 it says "Right Serial".
The problem is that long before FF is written over that memory area and it seems that this is done everytime - which can't be true, cauz then it wouldnt be possible at all to enter a valid serial.
I checked it with IDA and wdasm but it i wasn't able to figure out, from where it was called or jumped to.
So I have two questions in one
1. Anyone seen this before and has any tips for me?
2. Is there a function in SoftICE to check, from where a specific code location was called? (the bpr <xxx> T cmd doesnt work for me.
thx'n'cya
Joda
Well I have a shareware program here that uses a sonewhat easy serial protection sheme, but I can't find the right serial.
That wouldnt be so interesting, but the facts are this:
(i can't post code, cauz I'm at work, hope it's clear nevertheless)
1. Name and Serial are read in with GetWindowText
2. An algo calculatesa serial from the name
3. MySerial and AlgoSerial are compared
If they are the same:
"The serial was right, but it doesnt work with this version of the program"
If they are not equal:
"Sorry wrong serial."
Weird.
Well i traced a bit thru the code after the JNE and found that some memory is tested, if the word saved there is between 1 and 6 it says "Right Serial".
The problem is that long before FF is written over that memory area and it seems that this is done everytime - which can't be true, cauz then it wouldnt be possible at all to enter a valid serial.
I checked it with IDA and wdasm but it i wasn't able to figure out, from where it was called or jumped to.
So I have two questions in one

1. Anyone seen this before and has any tips for me?
2. Is there a function in SoftICE to check, from where a specific code location was called? (the bpr <xxx> T cmd doesnt work for me.
thx'n'cya
Joda