鱼C论坛

 找回密码
 立即注册
查看: 1531|回复: 1

win32汇编中的一些疑问

 关闭 [复制链接]
发表于 2014-3-5 11:20:48 | 显示全部楼层 |阅读模式
1鱼币
win32汇编的 罗云彬版本13.4.2讲到自定位问题中远程示例的问题

;********************************************************************
; 查找文件管理器窗口并获取进程ID,然后打开进程
;********************************************************************
                invoke        FindWindow,addr szDesktopClass,addr szDesktopWindow
                invoke        GetWindowThreadProcessId,eax,offset dwProcessID
                mov        dwThreadID,eax
                invoke        OpenProcess,PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or \
                        PROCESS_VM_WRITE,FALSE,dwProcessID
                .if        eax
                        mov        hProcess,eax
;********************************************************************
; 在进程中分配空间并将执行代码拷贝过去,然后创建一个远程线程
;********************************************************************
                        invoke        VirtualAllocEx,hProcess,NULL,REMOTE_CODE_LENGTH,MEM_COMMIT,PAGE_EXECUTE_READWRITE
                        .if        eax
                                mov        lpRemoteCode,eax
                                invoke        WriteProcessMemory,hProcess,lpRemoteCode,\
                                        offset REMOTE_CODE_START,REMOTE_CODE_LENGTH,NULL
                                invoke        WriteProcessMemory,hProcess,lpRemoteCode,\
                                        offset lpLoadLibrary,sizeof dword * 3,NULL
                                mov        eax,lpRemoteCode
                                add        eax,offset _RemoteThread - offset REMOTE_CODE_START
                                invoke        CreateRemoteThread,hProcess,NULL,0,eax,0,0,NULL
                                invoke        CloseHandle,eax
                        .endif
                        invoke        CloseHandle,hProcess
                .else
                        invoke        MessageBox,NULL,addr szErrOpen,NULL,MB_OK or MB_ICONWARNING
                .endif
                invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

代码若上图
为什么要写两次内存?
                                mov        lpRemoteCode,eax
                                invoke        WriteProcessMemory,hProcess,lpRemoteCode,\
                                        offset REMOTE_CODE_START,REMOTE_CODE_LENGTH,NULL
                                invoke        WriteProcessMemory,hProcess,lpRemoteCode,\
                                        offset lpLoadLibrary,sizeof dword * 3,NULL
                                mov        eax,lpRemoteCode

前后的mov lpRemoteCode,eax;   mov eax,lpRemoteCode是为什么  求大牛解答!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-5 11:58:45 | 显示全部楼层
我好像知道为什么了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 23:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表