(1)在RemoteCode中主要描述了代码的重定向,如果我把_szDllUser放在_szDispatchMessage字符串之后,会出现窗口无法打开的现象,如果放在_szCaptionMain之后一切正常,
(2)最主要的是不知道远程线程应该如何调试,指点一下,谢谢
下面仅贴错误代码:
_lpLoadLibrary dd ?
_lpGetProcAddress dd ?
_lpGetModuleHandle dd ?
_lpDestroyWindow dd ?
_lpPostQuitMessage dd ?
_lpDefWindowProc dd ?
_lpLoadCursor dd ?
_lpRegisterClassEx dd ?
_lpCreateWindowEx dd ?
_lpShowWindow dd ?
_lpUpdateWindow dd ?
_lpGetMessage dd ?
_lpTranslateMessage dd ?
_lpDispatchMessage dd ?
_hInstance dd ?
_hWinMain dd ?
_szClassName db 'RemoteClass', 0
_szCaptionMain db 'RemoteWindow', 0
_szDestroyWindow db 'DestroyWindow', 0
_szPostQuitMessage db 'PostQuitMessage', 0
_szDefWindowProc db 'DefWindowProcA', 0
_szLoadCursor db 'LoadCursorA', 0
_szRegisterClassEx db 'RegisterClassExA', 0
_szCreateWindowEx db 'CreateWindowExA', 0
_szShowWindow db 'ShowWindow', 0
_szUpdateWindow db 'UpdateWindow', 0
_szGetMessage db 'GetMessageA', 0
_szTranslateMessage db 'TranslateMessage', 0
_szDispatchMessage db 'DispatchMessageA', 0, 0
_szDllUser db 'User32.dll', 0
_RemoteThread proc uses ebx edi esi, lParam
local @hModule
call @F
@@:
pop ebx
sub ebx, offset @B ;
;<--------------------------------------------------------->
_invoke [ebx + _lpGetModuleHandle], NULL
mov [ebx + _hInstance], eax
lea eax, [ebx + offset _szDllUser]
_invoke [ebx + _lpGetModuleHandle], eax
mov @hModule, eax
lea esi, [ebx + offset _szDestroyWindow]
lea edi, [ebx + offset _lpDestroyWindow]
.while TRUE
_invoke [ebx + _lpGetProcAddress], @hModule, esi
mov [edi], eax
add edi, 4
@@:
lodsb
or al, al
jnz @B
.break .if ! byte ptr [esi + 1]
.endw
;<----------------------------------------------------------->
call _WinMain
ret
_RemoteThread endp
[课程]FART 脱壳王!加量不加价!FART作者讲授!