Spade
December 23rd, 2001, 12:24
I am an absolute beginner so please forgive me if the below questions appear so stupid to you.
1. What is the difference between "ret" and "ret 000x"? Does ret 0004 moves 4 lines up, 4 bytes up or four calls back, or what?
2. At 0041BCD0, I have the dialog saying "trial is ended". The dialog offers me two choices; Register... or Quit. According to the below snippet, how do I arrive here (0041BCD0)? Tried returning at 0041BCB0, at 0041BCCB and 0041BCD0, no hope. The call at address 0041BC63 is called from another address. Just two lines up of it there is a conditional jump. Reversing it fools the program but it starts right from the scratch, ie., you loose all your settings.
The installation date is encrypted in a .dat file in Windows directory. Deleting this file also starts the program from the scratch. I couldn't find where the actual time comparison is made. I played with compare string, get system time, get local time, system time to file time functions but no hope.
3. Why do authors sometimes use nop in their code?
Thanks in advance.
* Referenced by a CALL at Address:
|:0041BC63
|
:0041BCB0 56 push esi
:0041BCB1 8BF1 mov esi, ecx
:0041BCB3 E868FAFFFF call 0041B720
:0041BCB8 8B442408 mov eax, dword ptr [esp+08]
:0041BCBC C706D0FA4200 mov dword ptr [esi], 0042FAD0
:0041BCC2 894604 mov dword ptr [esi+04], eax
:0041BCC5 8BC6 mov eax, esi
:0041BCC7 5E pop esi
:0041BCC8 C20400 ret 0004
:0041BCCB 90 nop
:0041BCCC 90 nop
:0041BCCD 90 nop
:0041BCCE 90 nop
:0041BCCF 90 nop
* Possible Reference to Dialog: DialogID_0139
|
:0041BCD0 B839010000 mov eax, 00000139
:0041BCD5 C3 ret
:0041BCD6 90 nop
:0041BCD7 90 nop
:0041BCD8 90 nop
:0041BCD9 90 nop
:0041BCDA 90 nop
:0041BCDB 90 nop
:0041BCDC 90 nop
:0041BCDD 90 nop
:0041BCDE 90 nop
:0041BCDF 90 nop
:0041BCE0 56 push esi
:0041BCE1 8BF1 mov esi, ecx
:0041BCE3 E818000000 call 0041BD00
:0041BCE8 F644240801 test [esp+08], 01
:0041BCED 7409 je 0041BCF8
:0041BCEF 56 push esi
:0041BCF0 E881300000 call 0041ED76
:0041BCF5 83C404 add esp, 00000004
1. What is the difference between "ret" and "ret 000x"? Does ret 0004 moves 4 lines up, 4 bytes up or four calls back, or what?
2. At 0041BCD0, I have the dialog saying "trial is ended". The dialog offers me two choices; Register... or Quit. According to the below snippet, how do I arrive here (0041BCD0)? Tried returning at 0041BCB0, at 0041BCCB and 0041BCD0, no hope. The call at address 0041BC63 is called from another address. Just two lines up of it there is a conditional jump. Reversing it fools the program but it starts right from the scratch, ie., you loose all your settings.
The installation date is encrypted in a .dat file in Windows directory. Deleting this file also starts the program from the scratch. I couldn't find where the actual time comparison is made. I played with compare string, get system time, get local time, system time to file time functions but no hope.
3. Why do authors sometimes use nop in their code?
Thanks in advance.
* Referenced by a CALL at Address:
|:0041BC63
|
:0041BCB0 56 push esi
:0041BCB1 8BF1 mov esi, ecx
:0041BCB3 E868FAFFFF call 0041B720
:0041BCB8 8B442408 mov eax, dword ptr [esp+08]
:0041BCBC C706D0FA4200 mov dword ptr [esi], 0042FAD0
:0041BCC2 894604 mov dword ptr [esi+04], eax
:0041BCC5 8BC6 mov eax, esi
:0041BCC7 5E pop esi
:0041BCC8 C20400 ret 0004
:0041BCCB 90 nop
:0041BCCC 90 nop
:0041BCCD 90 nop
:0041BCCE 90 nop
:0041BCCF 90 nop
* Possible Reference to Dialog: DialogID_0139
|
:0041BCD0 B839010000 mov eax, 00000139
:0041BCD5 C3 ret
:0041BCD6 90 nop
:0041BCD7 90 nop
:0041BCD8 90 nop
:0041BCD9 90 nop
:0041BCDA 90 nop
:0041BCDB 90 nop
:0041BCDC 90 nop
:0041BCDD 90 nop
:0041BCDE 90 nop
:0041BCDF 90 nop
:0041BCE0 56 push esi
:0041BCE1 8BF1 mov esi, ecx
:0041BCE3 E818000000 call 0041BD00
:0041BCE8 F644240801 test [esp+08], 01
:0041BCED 7409 je 0041BCF8
:0041BCEF 56 push esi
:0041BCF0 E881300000 call 0041ED76
:0041BCF5 83C404 add esp, 00000004