64 bit assembler > UASM Assembler Development

jmp 3 bytes off

(1/1)

jj2007:
UASM v2.55, Mar 28 2022:


--- Code: --- CASE WM_LBUTTONDOWN
push 1
call someproc
xor eax, eax
mov edx, 11111111h  ; marker for debugging
jmp OutHere
CASE WM_RBUTTONDOWN
push 0
call someproc
xor eax, eax
mov edx, 22222222h  ; marker for debugging
jmp OutHere
ENDSW

invoke CallWindowProc, opSubCanvas, hwnd, uMsg, wParam, lParam ; subclassing finished, continue with default handler
nops 2   ; 3 would be ok
OutHere: ret
--- End code ---


--- Code: ---Address   Hex dump          Command                                  Comments
00403623   .  33C0          xor eax, eax
00403625   .  BA 11111111   mov edx, 11111111                        ; first jump
0040362A   .  EB 2F         jmp short 0040365B                       ; wrong jump
0040362C   .  EB 17         jmp short 00403645
0040362E   >  3D 04020000   cmp eax, 204
00403633   .  75 10         jne short 00403645
00403635   .  6A 00         push 0                                   ; /Arg1 = 0
00403637   .  E8 73000000   call 004036AF
0040363C   .  33C0          xor eax, eax
0040363E   .  BA 22222222   mov edx, 22222222                        ; second jump
00403643   .  EB 16         jmp short 0040365B                       ; wrong jump
00403645   >  FF75 14       push dword ptr [ebp+14]                  ; /lParam
00403648   .  FF75 10       push dword ptr [ebp+10]                  ; |wParam
0040364B   .  FF75 0C       push dword ptr [ebp+0C]                  ; |Msg
0040364E   .  FF75 08       push dword ptr [ebp+8]                   ; |hWnd
00403651   .  FF35 84154100 push dword ptr [411584]                  ; |WinProc = ntdll.776F11A8
00403657   .  E8 82330000   call CallWindowProcA                     ; \USER32.CallWindowProcA
0040365C   .  90            nop
0040365D   .  90            nop
0040365E   .  5B            pop ebx
0040365F   .  5F            pop edi
00403660   .  5E            pop esi
00403661   .  C9            leave
00403662   .  C2 1000       retn 10
--- End code ---

The problem ist the OutHere: ret

This works perfectly:


--- Code: ---OutHere:
     ret
--- End code ---

Navigation

[0] Message Index

Go to full version