Silver
July 5th, 2004, 15:57
Hey all,
I'm playing with a target, and come across something I don't quite understand.
Scenario. App loads, checks current system time, compares it to a value then messageboxes with "Trial Period Expired". I've tracked down to the call that does the check & decision whether the trial is ok or finished. It calls this code:
When I step into this code and trace it, it simply sits at the loop instruction and, er, loops
. When I execute it, it "magically" jumps out the loop and a messagebox with the trial expired message appears.
I am absolutely sure that this call (code above) is what causes the messageboxa calll - if I trace over the code one level above, and step over the call to 416793, the messagebox appears (ie: it's not the next instruction).
Can anyone give me a pointer of where to go next? Thanks!
I'm playing with a target, and come across something I don't quite understand.
Scenario. App loads, checks current system time, compares it to a value then messageboxes with "Trial Period Expired". I've tracked down to the call that does the check & decision whether the trial is ok or finished. It calls this code:
Code:
:00416790 55 push ebp
:00416791 8BEC mov ebp, esp
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004167FD(C)
|
:00416793 83EC08 sub esp, 00000008
:00416796 56 push esi
:00416797 50 push eax
:00416798 B8D3605765 mov eax, 655760D3
:0041679D 53 push ebx
:0041679E BB1C684100 mov ebx, 0041681C
:004167A3 51 push ecx
:004167A4 B955000000 mov ecx, 00000055
:004167A9 0003 add byte ptr [ebx], al
:004167AB 05BE71BDBA add eax, BABD71BE
:004167B0 4B dec ebx
:004167B1 C1C00C rol eax, 0C
:004167B4 05EA3B89E8 add eax, E8893BEA
:004167B9 35F815836E xor eax, 6E8315F8
:004167BE 2D5691812D sub eax, 2D819156
:004167C3 C1C004 rol eax, 04
:004167C6 E2E1 loop 004167A9
:004167C8 22FB and bh, bl
:004167CA C20A44 ret 440A
When I step into this code and trace it, it simply sits at the loop instruction and, er, loops

I am absolutely sure that this call (code above) is what causes the messageboxa calll - if I trace over the code one level above, and step over the call to 416793, the messagebox appears (ie: it's not the next instruction).
Can anyone give me a pointer of where to go next? Thanks!