Task three - Q1 and Q2 Sunday, 07-Feb-99 18:11:33
At this moment Iīm only able to answer to Q1 and Q2, Q3 seems a little more difficult. Question 1. Explain as best you can, what the above code fragment does. Comment all four lines. a. Show what values of importance are returned in the PC's internal registers after the CALL 0040CCC0 has been executed. The most important value is from EAX, if after the call, we have EAX=FFFFFFFF then the serial is wrong if EAX=00000001 then the serial is correct. Also important are ECX and EDX that contain the reg code that you entered and the correct reg code. b. What is the reason for the ADD ESP, 00000008 instruction? BTW, register ESP is a STACK Register. I really donīt have a clue.Maybe later. MY really a newbie in assembler. c. The instruction TEST EAX,EAX is checking the eax register for two possible values, what are they and what do they signify? Like I said is looking for FFFFFFFF that means that your reg code is wrong and 00000001 that means that your reg code is correct. d. Where does the instruction JNE 0040B9BC take us to? Itīs a jump to the wrong reg code message. ------------------------------------------------- Question 2. Explain how this program compares our *fake* serial number against the *real* one. (hint, check the code between :0040CCC0 to :0040CCF9 ) :0040CCC0 83EC04 sub esp, 00000004 :0040CCC3 833D24F1420000 cmp dword ptr [0042F124], 00000000 :0040CCCA 53 push ebx :0040CCCB 56 push esi :0040CCCC 7537 jne 0040CD05 :0040CCCE 8B4C2410 mov ecx, dword ptr [esp+10] -points ECX to your reg code. :0040CCD2 8B542414 mov edx, dword ptr [esp+14] -points EDX to the right code. :0040CCD6 8A01 mov al, byte ptr [ecx] -Letter in question of our code :0040CCD8 3A02 cmp al, byte ptr [edx] -See if the letter in question of our code is the correct one. :0040CCDA 751E jne 0040CCFA -If one of the letters is wrong->jump :0040CCDC 0AC0 or al, al -See if itīs the end of the reg code. :0040CCDE 7412 je 0040CCF2 -If it is->jump to 40CCF2 :0040CCE0 8A4101 mov al, byte ptr [ecx+01] -Next letter on our reg code. :0040CCE3 3A4201 cmp al, byte ptr [edx+01] -Compare next letter :0040CCE6 7512 jne 0040CCFA -Letters different->Jump to 0040CCFA :0040CCE8 83C102 add ecx, 00000002 -Advance our reg code two letters :0040CCEB 83C202 add edx, 00000002 -The same to the correct reg code. :0040CCEE 0AC0 or al, al -checks if it is the end of the reg code :0040CCF0 75E4 jne 0040CCD6 -No, repeat the loop :0040CCF2 33C0 xor eax, eax -Correct serial :0040CCF4 5E pop esi -EAX=00000001 :0040CCF5 5B pop ebx :0040CCF6 83C404 add esp, 00000004 :0040CCF9 C3 ret :0040CCFA 1BC0 sbb eax, eax -Wrong serial :0040CCFC 5E pop esi -EAX=FFFFFFFF :0040CCFD 83D8FF sbb eax, FFFFFFFF :0040CD00 5B pop ebx :0040CD01 83C404 add esp, 00000004 :0040CD04 C3 ret Nabo |
Nabo: Task one (04-Feb-99 22:11:02) |
|
Copyright © InsideTheWeb, Inc. 1997-1999
All rights reserved.