CreateRemoteThread(handle,NULL,0,(LPTHREAD_START_ROUTINE)GetProcAddress,virMemory,0,&dwID);GetProcAddress(hModule,"subtract")这个函数有两个参数,要通过VirMemory传递,怎么办.最好有代码???

解决方案 »

  1.   

    这个简单,做一个struct,里面放几个变量,然后把struct的指针当作参数传递
      

  2.   


    这里是跨进程,不能直接用指针的跨进程传递指针必须先用VirtualAllocEx在目标进程中分配一块内存,然后使用这个远程指针来做参数楼主需要的功能最好封装在自己的Dll中,然后用LoadLibrary来加载,而不是直接用GetProcAddress
    CreateRemoteThread(handle,NULL,0,(LPTHREAD_START_ROUTINE)LoadLibrary,lpszLibrary,0,&dwID); 
    其中lpszLibrary是实现用VirtualAllocEx在目标进程中分配的保存你的Dll的文件名的指针
      

  3.   

    看我这个帖子的31楼,实现4个参数的传递LdrLoadDll,主要使用汇编把调用代码直接写进去
    http://topic.csdn.net/u/20090427/16/3147cd76-4d00-4298-86ed-c4b47c4bb76c.html
      

  4.   

    1.WriteProcessMemory 把函数和函数参数写入目标进程,然后通过CreateRemoteThread 执行这个函数.
    1.把这个函数和参数放在一个DLL里面,把这个DLL载入到目标进程.
      

  5.   

    参考我这个帖子
    http://topic.csdn.net/u/20090427/16/3147cd76-4d00-4298-86ed-c4b47c4bb76c.html用WriteProcessMemory
      

  6.   

    VirtualAllocEx在目标进程申请块内存空间,然后WriteProcessMemory把函数写进去
    VirtualAllocEx在目标进程申请块内存空间,然后WriteProcessMemory把参数写进去
    然后CreateRemoteThread创建并执行线程,然后就一些内存释放的工作,大概就死这样了.
    网上这样代码很多的,感觉你是要完完全全的代码!