|
|
|
|
|
|
|
|
|
|
||
|
||
|
|
There is a crack, a crack in everything. That's how the light gets in. |
|
|
|
To see if there are any other references, double click on the string reference again. Ahh...
* StringData Ref from
Data Obj -> "Thank you for trying Who-Is. The trail"
-> "Your trial period expires in %d days."
:004184C1 68089F4200
PUSH 0042AF08
:004184C6 52
PUSH EDX
Hm...did you notice the difference? If the time limit is reached, then the first routine ( :0041847B ) is called. If you still have time left, then the second routine at ( :004184C1 ) is called.
We don't care about this, though. We want to totally bypass the nag.
From :004184C1 scroll upwards to see if there are any compare/conditional jump pairs near by. Nope. There IS, though, a reference to a conditional jump from :00418475. Did you notice that this address is very close to the first nag routine ( :0041847B )?
OK, now go to :00418472
:00418472 83FE0E
CMP ESI, 0000000E ;<- 14 day limit
is up?
:00418475 7E2A
JLE 004184A1 ;<-
Not yet so jump to the
;<- second routine
So.
Remember my curiosity? Let's scroll farther upwards, shall we?
Ahh...Do
you see the two conditional jumps?
:0041841F 833A01
CMP DWORD PTR [EDX], 00000001
:00418422 0F85C9000000
JNE 004184F1 ;<- Not a 1?
Must be registered!
:00418428 8B742418
MOV ESI, DWORD PTR [ESP+18]
:0041842C F7C600000080
TEST ESI, 80000000
:00418432 0F85B9000000
JNE 004184F1 ;<- No? Must
be registered!
If you change both JNE 004184F1 instructions to JE 004184F1 , that will kill the first nag. It also kills, the time limit too..:).
Second nag. Go back to the Data String Resouces in W32Dasm and scroll down. Do you see "This is the free preview copy"? then Double click on it.
:00414FA0 6870994200
PUSH 00429970 ;"This is the free preview copy of
"Who-Is."
As usual, scroll upwards to see if there is a compare/conditional jump pair. There is.
:00414F97 833901
CMP DWORD PTR [ECX], 00000001
:00414F9A 750E
JNE 00414FAA <- Not a 1? Then must be
*registered*
Change the JNE 00414FAA to JE 00414FAA.
Go back to the String Ref and double click again to see if there is
another reference.
There is.
* StringData Ref -> "This is the free preview copy of Who-Is."
:00416EEC 6870994200
PUSH 00429970 ;Scroll upwards to see if
there is a
;compare / conditional jump pair.
;There sure is!
:00416EE3 833901
CMP DWORD PTR [ECX],00000001
:00416EE6 750E
JNE 004166F6 ;Not a 1? This program must be registered
Change the JNE 004166F6 to JE
004166F6.
Set your computer's date ahead 1 month and run that program. Look Ma---no
nags!!!
Program cracked.
|
REPLACE WITH HIGHLIGHTED BYTES : 833A010F84C9000000F7C6000000800F84B9000000
SEARCH FOR THE FOLLOWING BYTES
: 833901750E6A00
REPLACE WITH HIGHLIGHTED
BYTES : 833901740E6A00
Note: the last search above has 2 occurances.
Change both.
|
My thanks and gratitude goes to:-
Fravia+ for providing possibly the greatest
source of Reverse Engineering
knowledge on the Web.
+ORC for showing me the light at the end
of the tunnel.
|
Back to Students Essay's |