首页
社区
课程
招聘
[求助]关于远程线程的问题
发表于: 2008-5-13 22:06 2975

[求助]关于远程线程的问题

2008-5-13 22:06
2975
本人想通过修改老罗的程序来实现远程线程,可是实验发现我的程序执行不了,一执行就弹出一个数据保护的对话框,经检查发现是因为下面这段代码还没搞懂,我想问一下假如我想写一个象病毒之类能在后台悄悄运行的程序,我总觉得只需修改RemoteCode.asm就行了,不知道是不是这样?我看来看去总觉得是这样,可是象下面这样写总是不行,如果我想的没错, 那么下面这段代码该如何修改?偶愚蠢,看不懂,请高手相助
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming 2nd Edition>
; by 罗云彬, http://asm.yeah.net
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; RemoteCode.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
REMOTE_CODE_START        equ this byte
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_lpLoadLibrary                dd        ?        ;导入函数地址表
_lpGetProcAddress        dd        ?
_lpGetModuleHandle        dd        ?

_lpSystemTime   dd    ?
_stSystemTime   SYSTEMTIME   <>
_hInstance        dd        ?
_szDllUser                db        'User32.dll',0
_lpGetLocalTime dd    ?
_lpSetLocalTime dd    ?
_szGetLocalTime db    'GetLocalTime',0
_szSetLocalTime db    'SetLocalTime',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 _szGetLocalTime]
                lea        edi,[ebx + offset _lpGetLocalTime]
                .while        TRUE
                        _invoke        [ebx + _lpGetProcAddress],@hModule,esi
                        mov        [edi],eax
                        add        edi,4
                        @@:
                        lodsb
                        or        al,al
                        jnz        @B
                        .break        .if ! byte ptr [esi]
                .endw
;********************************************************************
                call        _Time
                ret

_RemoteThread        endp

;修改时间******************************************************
_Time        proc        uses ebx edi esi lParam

                call        @F
                @@:
                pop        ebx
                sub        ebx,offset @B

mov     eax,[ebx+offset _stSystemTime]
mov     [ebx+_lpSystemTime],eax
lea     eax,[ebx+_lpSystemTime]
_invoke [ebx+_lpGetLocalTime],eax
mov     eax,2007
mov     [ebx+_stSystemTime.wYear],ax
lea     eax,[ebx+_lpSystemTime]
_invoke [ebx+_lpSetLocalTime],eax
;_invoke Sleep,8000
ret
_Time   endp
;****************************************************************

REMOTE_CODE_END                equ this byte
REMOTE_CODE_LENGTH        equ offset REMOTE_CODE_END - offset

REMOTE_CODE_START
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//