CreateRemoteThread WriteProcessMemory 第三种方法的基本思想是拷贝一些代码到另一进程的地址空间中然后执行。这种方法代替了编写独立的DLL,而是直接将代码使用WriteProcessMemory API函数拷贝到远程进程中。然后通过CreateRemoteThread来执行它。

本文前面已经介绍过CreateRemoteThread的函数原型,注意以下几点:

1、              hProcess参数是CreateRemoteThread的附加参数,它是进程决定创建哪个线程的句柄。

2、              lpStartAddress参数是线程在远程进程地址空间中的开始地址。它必须存在于远程进程中,因此不能简单的拷贝一个地址句柄传递给本地的ThreadFunc,而必须先将代码拷贝到远程进程中。

3、              对于lpParameter参数也一样,也必须将他拷贝到远程进程中。

下面概括一下使用CreateRemoteThread和WriteProcessMemory的具体步骤。

1、返回远程进程的句柄HANDLE(OpenProcess)

2、在远程进程的地址空间中为待注入的代码分配内存(VirtualAllocEX)

3、将已初始化后的INJDATA结构的一个拷贝写入分配的内存(WriteProcessMemory)

4、在远程进程的地址空间中为注入的代码分配内存

5、将ThreadPunc的一个拷贝写入分配的内存

6、使用CreateRemoteThread来执行远程的ThreadFunc拷贝

7、等待远程线程的终止(WaitForSingleObject)

8、从远程进程中返回执行结果(ReadProcessMemory或GetExitCodeThread)

9、释放已申请的内存,包括步骤2和步骤4中的申请(VirtualFreeEx)

10、             关闭返回的句柄,包括步骤1和步骤6中的HANDLE(CloseHandle)

上述步骤中需要定义INJDATA结构:

typedef struct {

HWND    hwnd;

SENDMESSAGE         fnSendMessage; // pointer to user32!SendMessage

BYTE     pbText[128 * sizeof(TCHAR)];

} INJDATA, *PINJDATA;

构造ThreadFunc时将INJDATA作为传递的参数:

static DWORD WINAPI ThreadFunc (INJDATA *pData)

{

return 0;

}

这样,就可以在ThreadFunc中加入一些想做的事情,并且注入到其它进程中来执行。

CreateRemoteThreadWriteProcessMemory技术 简要的相关推荐

  1. 数据中心节能分析和节能技术简要总结

    数据中心的管理中,能耗管理一直是数据中心经理管理最难的一块,业务增加,机房内的设备增加,机房能耗持续升高,更高的能耗成本,如何节能增效成为管理者急迫需要解决的问题. 今天我们从能耗分布和节能技术分析, ...

  2. 以太坊网络区块浏览器blocksout技术简要分析

    以太坊网络浏览器 以太坊网络区块浏览器目前主要是etherscan.io提供.官方正规的区块浏览器没有etherscan.io强大,不具有合约内联交易,Token交易分析功能,而etherscan.i ...

  3. 超分辨率图像重建技术简要

    超分辨率图像重建(Super-resolution Image Reconstruction) 要讨论超分辨率图像重建,首先要弄清楚什么叫超分辨率重建,为什么要超分辨率重建.我希望能把事情说得比较简单 ...

  4. LORA技术简要说明

    LORA技术是由瑞士一家公司开发的远距离低功耗通信技术,在可以在多个频段工作,包括433.868.915 MHz以及2.4Ghz,该技术采用基于线性调频扩频调制,兼具有低功耗和远距离特性,作为扩频通信 ...

  5. SQL Server 2005全文检索技术在网站上的应用实录

    SQL Server 2005全文检索技术在网站上的应用实录 一.前言 "人类失去搜索,世界将会怎样?",同样,很难想象一个拥有极大信息量的行业网站门户没有站内全文搜索将会出现怎样 ...

  6. Android WebView简要介绍和学习计划

    我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就 ...

  7. CPU硬件辅助虚拟化技术

    目前主要有Intel的VT-x和AMD的AMD-V这两种技术.其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest O ...

  8. 客户机操作系统已禁用cpu_CPU硬件辅助虚拟化技术

    目前主要有Intel的VT-x和AMD的AMD-V这两种技术.其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest O ...

  9. 大气颗粒物PMF源解析实践技术应用

    [查看原文]大 气 颗 粒 物 PMF 源 解 析 实 践 技 术 应 用 目前,大气颗粒物污染成为我国亟待解决的环境问题.颗粒物污染不仅对气候和环境有重要影响,而且对人体健康有严重损害,尤其在一些重 ...

最新文章

  1. android小程序备忘录,撸一个会话备忘录的小程序
  2. python flask框架发布问答平台注册页面_Python|Flask框架实现QQ账号登录
  3. 百度健康打通医药电商服务
  4. Windows下基于Anaconda的Tensorflow环境配置
  5. matlab单机带负荷系统模型,用MATLAB仿真实现电力系统静态稳定性分析
  6. 指针传递和strcpy的实现
  7. 如何调用gitee仓库真实图片链接
  8. 《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》一一第0章 初识数字图像处理与机器视觉...
  9. ios touch坐标_iOS 3D Touch –窥视与流行
  10. Dos命令大全完整版
  11. 微信小程序云函数发天气预报
  12. 联通托管服务器为什么打不开网页,为什么有些网页联通宽带打不开,移动4G能打开?...
  13. Python期末考试-中心点问题
  14. 国产手机销量同比大跌超过五成,手机库存货需10个月消化
  15. Pytorch 如何计算三角函数
  16. Linux 信号signal处理机制
  17. r语言归一化_数据变换-归一化与标准化
  18. 【PyQt】Qt中QMainWindow, QWidget以及QDialog的区别和选择
  19. 魅族16s Pro体验:精益求精的打磨升级款
  20. ActivePerl安装包及安装

热门文章

  1. 奥运后,接手两个项目,PECT培训,CIW培训,系分考试...........一堆流水帐
  2. 什么是熵增?如何对抗熵增?
  3. 比Postman还好用的API神器Eolink,效率担当
  4. activiti6.0表结构梳理
  5. 利用MQL进行MQL解析
  6. libreoffice安装+libreoffice转换pdf (linux)
  7. 人脸识别之人脸验证(五)--NormFace
  8. 替补者的旅行(巨长,慎入)
  9. FIFO读rd写wr控制信号处理方式的简单理解-FPGA学习笔记(五)
  10. 另一个jar包引不了_谁说我结不了婚,周晨宇比小哈更受欢迎,原因是这个