|
UltraEdit 32 v6.20b
|
|
|
|
|
|
Subject: Cracking |
|
![]() |
|
|
This essay is for knowledge purposes only!! Software developers spend much time in making their programs. They live from the money we give them! Please buy good software!! |
|
| I. Introduction | |
Welcome in this howto crack UltraEdit essay! Of all essays I wrote this is the most difficult |
|
| II. About the protection | |
|
|
| III. Cracking it | |
Run the program and note the message the nagscreen displays:
"This is an unregistered copy...."
************Start-of-partial-code************
* Possible StringData Ref from Data Obj ->"Days to expire"
|
:0045A68B 689C064D00 push 004D069C
:0045A690 57 push edi
:0045A691 E8D1030300 call 0048AA67
:0045A696 A14C6D4D00 mov eax, dword ptr [004D6D4C]
:0045A69B A3546D4D00 mov dword ptr [004D6D54], eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045A724(C)
|
:0045A6A0 391D206D4D00 cmp dword ptr [004D6D20], ebx<-Registered?
:0045A6A6 7519 jne 0045A6C1 <- Jump if it is
* Possible Reference to String Resource ID=00005: "ULTRAEDT.MAC"
|
:0045A6A8 6A05 push 00000005
:0045A6AA 8D8E28010000 lea ecx, dword ptr [esi+00000128]
:0045A6B0 E8557C0200 call 0048230A
:0045A6B5 FFB644010000 push dword ptr [esi+00000144]
* Reference To: USER32.UpdateWindow, Ord:0291h <- Display nag
|
:0045A6BB FF15ECB64A00 Call dword ptr [004AB6EC]
Okay so first thing we have to do is changing the 7519 jne 0045A6C1 into: EB19 jmp 0045A6C1 Run the program again, and you'll see the nag has disappeared. Note that the time trial is still active, so let's crack that bitch :) You can use the program unregistered for 45 days. The hex value for 45 is "2D". So, there might be a check like "cmp register, 0000002D". Let's guess and take eax for the register, so search for "cmp eax, 0000002D"....and BINGO! ************Start-of-partial-code************
* Possible StringData Ref from Data Obj ->"Settings"
|
:0045A6FD 68F0054D00 push 004D05F0
:0045A702 E860030300 call 0048AA67
:0045A707 A14C6D4D00 mov eax, dword ptr [004D6D4C]
:0045A70C 2B05546D4D00 sub eax, dword ptr [004D6D54]
:0045A712 50 push eax
:0045A713 E8323C0100 call 0046E34A <- Calculate usage
:0045A718 83F82D cmp eax, 0000002D <-Compare days
:0045A71B 59 pop ecx
:0045A71C 7F0C jg 0045A72A <- jump if expired
:0045A71E 399E44010000 cmp dword ptr [esi+00000144], ebx
:0045A724 0F8576FFFFFF jne 0045A6A0
************End-of-partial-code************
Yeah indeed, nop out that jump :) 7F0C jg 0045A72A becomes: 90 NOP 90 NOP Now the program is fully functional as the registered program should be, but there's still one thing left: the "unregistered" string in the aboutbox. This nasty thing costed me quite some time to find out: there are so many "This is an unregistered copy...." strings that it'd be impossible to find out what string is used for the about box. So I started thinking, and this is what I found out: the program probably checks the registered flag twice -> once for the nagscreen and once for the about box. So I started searching for a second "cmp dword ptr [004D6D20], ebx". I didn't find one, and I was getting quite frustrated, until I thought: "Maybe, it used another register to check that memory location!?". So again I started searching for all occurences with all different registers until....TADAAAAAAM if found: "cmp dword ptr [004D6D20], edi" :)) ************Start-of-partial-code************
:004061D7 C645FC01 mov [ebp-04], 01
:004061DB C70378D04A00 mov dword ptr [ebx], 004AD078
:004061E1 E8EACA0700 call 00482CD0
:004061E6 393D206D4D00 cmp dword ptr [004D6D20], edi <- Registered?
:004061EC 7462 je 00406250 <- Jump if not registered
* Possible Reference to String Resource ID=00009: "
This copy of UltraEdit-32 is licensed to :
"
|
:004061EE 6A09 push 00000009
:004061F0 8BCE mov ecx, esi
:004061F2 E868CF0700 call 0048315F
:004061F7 68FC544D00 push 004D54FC
:004061FC 8BCE mov ecx, esi
:004061FE E85CCD0700 call 00482F5F
:00406203 BFA4CF4C00 mov edi, 004CCFA4
|
|
| IV. In the end | |
|
Heh, my favorite part of tutorials :) You can freely use this essay on your page, as long as Greetings |
|
|
Essay written by The Blackbird © 1999-2000 This essay can be freely distributed/ published/ printed etc... as long as no modifications are made. |
|