InOverMyHead
December 9th, 2000, 05:07
I am working on a teachers grade book that is a Delphi program and gives you 30 days or uses. It requires a user name and an activation code. After the time limits the nag screens are still there and all save and print functions are disabled. It is available here:
http://www.jacksoncorp.com/demoformcgi/Download.html version 5 for Windows
I used hmemcpy to break on the activation code pressed F12 7 times, then F10 26 times to end up here:
004C955F mov edx, [ebp+var_308] ; d edx=fake activation code
004C9565 lea eax, [ebp+var_100]
004C956B mov ecx, 0FFh
004C9570 call @System@@LStrToString$qqrv ; System __linkproc__ LStrToString(void)
004C9575 mov [ebp+var_200], 0
004C957C cmp [ebp+var_100], 0
004C9583 jz short loc_4C95A1
004C9585 lea eax, [ebp+var_200]
004C958B push eax
004C958C mov ecx, 1
004C9591 mov edx, 1
004C9596 lea eax, [ebp+var_100]; d eax=space + fake activation code
004C959C call @System@@Copy$qqrv ; System __linkproc__ Copy(void)
004C95A1
004C95A1 loc_4C95A1: ; CODE XREF: sub_4C9320+263 j
004C95A1 mov eax, ds
ff_5B26E0
004C95A6 mov eax, [eax]
004C95A8 cmp dword ptr [eax+150h], 1
004C95AF jz short loc_4C95C2
004C95B1 mov eax, ds
ff_5B26E0
004C95B6 mov eax, [eax]
004C95B8 call @System@TObject@Free$qqrv ; System::TObject::Free(void)
004C95BD jmp loc_4C97F1
004C95C2 ; ---------------------------------------------------------------------------
004C95C2
004C95C2 loc_4C95C2: ; CODE XREF: sub_4C9320+28F j
004C95C2 lea eax, [ebp+var_100]
004C95C8 mov edx, offset aExtension ; "EXTENSION"; d edx=space + EXTENSION
004C95CD xor ecx, ecx
004C95CF mov cl, [eax]
004C95D1 inc ecx
004C95D2 call @System@@AStrCmp$qqrv ; System __linkproc__ AStrCmp(void); I stepped into this call and saw my fake and the above EXTENSION being compared beginning at 00403db6 the 1st 3 characters in reverse – if you change the Z flags that follow you will see the rest of the comparison being made. Using EXTENSION as an activation code will give you an additional 30 days or uses. I stepped into other calls, but I could not see any cmps being made such as in this area that yielded what I thought was useable info.
004C95D2 call @System@@AStrCmp$qqrv ; System __linkproc__ AStrCmp(void)
004C95D7 jnz short loc_4C95F5; if you change this Z flag - at 004c95df it tells you t hat you are registered, but you are not
004C95D9 lea eax, [ebp+var_100]
004C95DF call sub_4C8F54; Congratulations message
Could someone please point me in the right direction.
Thanks
http://www.jacksoncorp.com/demoformcgi/Download.html version 5 for Windows
I used hmemcpy to break on the activation code pressed F12 7 times, then F10 26 times to end up here:
004C955F mov edx, [ebp+var_308] ; d edx=fake activation code
004C9565 lea eax, [ebp+var_100]
004C956B mov ecx, 0FFh
004C9570 call @System@@LStrToString$qqrv ; System __linkproc__ LStrToString(void)
004C9575 mov [ebp+var_200], 0
004C957C cmp [ebp+var_100], 0
004C9583 jz short loc_4C95A1
004C9585 lea eax, [ebp+var_200]
004C958B push eax
004C958C mov ecx, 1
004C9591 mov edx, 1
004C9596 lea eax, [ebp+var_100]; d eax=space + fake activation code
004C959C call @System@@Copy$qqrv ; System __linkproc__ Copy(void)
004C95A1
004C95A1 loc_4C95A1: ; CODE XREF: sub_4C9320+263 j
004C95A1 mov eax, ds

004C95A6 mov eax, [eax]
004C95A8 cmp dword ptr [eax+150h], 1
004C95AF jz short loc_4C95C2
004C95B1 mov eax, ds

004C95B6 mov eax, [eax]
004C95B8 call @System@TObject@Free$qqrv ; System::TObject::Free(void)
004C95BD jmp loc_4C97F1
004C95C2 ; ---------------------------------------------------------------------------
004C95C2
004C95C2 loc_4C95C2: ; CODE XREF: sub_4C9320+28F j
004C95C2 lea eax, [ebp+var_100]
004C95C8 mov edx, offset aExtension ; "EXTENSION"; d edx=space + EXTENSION
004C95CD xor ecx, ecx
004C95CF mov cl, [eax]
004C95D1 inc ecx
004C95D2 call @System@@AStrCmp$qqrv ; System __linkproc__ AStrCmp(void); I stepped into this call and saw my fake and the above EXTENSION being compared beginning at 00403db6 the 1st 3 characters in reverse – if you change the Z flags that follow you will see the rest of the comparison being made. Using EXTENSION as an activation code will give you an additional 30 days or uses. I stepped into other calls, but I could not see any cmps being made such as in this area that yielded what I thought was useable info.
004C95D2 call @System@@AStrCmp$qqrv ; System __linkproc__ AStrCmp(void)
004C95D7 jnz short loc_4C95F5; if you change this Z flag - at 004c95df it tells you t hat you are registered, but you are not
004C95D9 lea eax, [ebp+var_100]
004C95DF call sub_4C8F54; Congratulations message
Could someone please point me in the right direction.
Thanks