CreateRemoteThread即在当前已有进程中创建新的线程。

从32位进程注入dll到32位进程的步骤如下:

1.OpenProcess 打开已有进程

2.VirtualAllocEx分配空间给它

3.获取LoadLibraryW的地址

4.WriteProcessMemory 写进内存空间

5.CreateRemoteThread实现注入

代码如下:

//32位程序注入到32位程序
//@param:dwPid:需要注入程序的进程pid
//@param:dllpath:注入的dll的路径
//return:True:注入成功,False:注入失败
bool injectDll32To32(DWORD dwPid,LPCTSTR dllpath)
{//Step 1: oepn destination processHANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,false,dwPid);//get dllpath lengthDWORD dwBufSize = (DWORD)(_tcslen(dllpath)+1)*sizeof(TCHAR);//Step2:VirtualAlloc space for the processLPVOID targetAddress = VirtualAllocEx(hProcess,0,dwBufSize,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);//Step3:Get LoadLibraryW AddressLPTHREAD_START_ROUTINE pfnThreadRtn = (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(_T("Kernel32")), "LoadLibraryW");//Step4:ChangePageProtectionDWORD oldProtect    = 0;   VirtualProtectEx(hProcess,targetAddress,dwBufSize,PAGE_EXECUTE_READWRITE,&oldProtect);//Step5:WriteProcessMemoryDWORD bytesRet= 0;if (!WriteProcessMemory(hProcess,targetAddress,(LPVOID)dllpath,dwBufSize,&bytesRet)){return false;}//Restore Oral VirtualProtectEx(hProcess,targetAddress,dwBufSize,oldProtect,&oldProtect);//Step6:CreateRemoteThreadHANDLE hThread = CreateRemoteThread(hProcess,NULL,0,pfnThreadRtn,targetAddress,0,NULL );if (!hThread){return false;}WaitForSingleObject(hThread,INFINITE);return true;
}

64位注入32位 32注入64位 64注入64 等后面有时间再写

源码在这:https://github.com/huifeng-kooboo/InjectDll

DLL注入(CreateRemoteThread方式)相关推荐

  1. DLL注入的方式 (转载自看雪学院)

    DLL 注入技术的 N 种姿势 看雪学院 看雪学院,为IT专业人士.技术专家提供了一个民间交流与合作空间. 18 人赞同了该文章 本文中我将介绍DLL注入的相关知识.不算太糟的是,DLL注入技术可以被 ...

  2. [web安全]深入理解反射式dll注入技术

    一.前言 dll注入技术是让某个进程主动加载指定的dll的技术.恶意软件为了提高隐蔽性,通常会使用dll注入技术将自身的恶意代码以dll的形式注入高可信进程. 常规的dll注入技术使用LoadLibr ...

  3. 【逆向】【Part 3】DLL注入

    目录 一.通过自制调试器来理解其原理 1.调试器的工作原理 实现反汇编功能(重点) 重点分析exception_debug_event 重点:1.对调试器程序增加异常处理操作功能,核心API, CON ...

  4. 《逆向工程》dll注入基础

    文章目录 21. windows消息钩取 21.2 消息钩子 21.3 SetWindowsHookEx 21.5.1 调试 23. dll注入 CreateRemoteThread() AppIni ...

  5. 实战dll注入(原理, 踩坑及排雷)

    摘要 使用vs2019编写注入器程序, 在生成的注入器可用前, 踩了不少坑, 因此记录一下. 本文涉及三种恶意代码注入方法: 直接dll注入, 反射式dll注入, 镂空注入. 之所以选这三种注入方法, ...

  6. 深入理解反射式dll注入技术

    前言 dll 注入技术是让某个进程主动加载指定的 dll 的技术.恶意软件为了提高隐蔽性,通常会使用 dll 注入技术将自身的恶意代码以 dll 的形式注入高可信进程. 常规的 dll 注入技术使用 ...

  7. x64dbg 修改为dll_c++笔记(dll 注入的实现)

    //新建项目a //新建源文件a.c 代码如下 //生成a.exe#include<stdio.h> #include<stdlib.h> #include <windo ...

  8. 【安全技术】关于几种dll注入方式的学习

    何为dll注入 DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程.我们注入的代码以动态链接库(DLL)的形式存在.DLL文件在运行时将按需加载(类似于UNIX系统中的共享库(shar ...

  9. Windows核心编程_远线程方式实现Dll注入

    之前有介绍过HOOK的方式注入,这次介绍以其它方式注入,而无须HOOK,要知道在Windows这个浩荡的海洋里,API就是宝藏,找到足够多的宝藏那么你就是海贼王~! 实现思路如下: 首先打开一个进程的 ...

最新文章

  1. 如何高效地逛Github?
  2. react 遍历对象_探索:跟随《Build your own React》实现一个简易React
  3. 【干货分享】前端面试知识点锦集02(CSS篇)——附答案
  4. JAVA之编译期和运行期区别
  5. [Python学习25] 关于函数更多的练习
  6. 中澳科学家在量子安全通信领域合作研究取得突破性进展
  7. typescript 第一弹
  8. python学习笔记 day44 表与表之间的关系
  9. Java_脚本引擎_01_用法入门
  10. 解决eclipse反编译乱码
  11. Java基础——类和对象
  12. linux查看udp丢包数量,Linux下UDP丢包问题分析思路
  13. #includefile.h与#includefile.h的区别
  14. python pppoe拨号_Python实现PPPOE攻击工具
  15. 黑苹果驱动神器Hackintool 3.4.4中文版
  16. 路由器loopback口实验
  17. 最牛逼的Java编辑器,没有之一!
  18. 酒庄页面HTML5,这5家酒庄的“跨界+体验”玩法,让全世界印象深刻
  19. 国内有哪些移动开发平台?各有什么特点
  20. 如何1年获得别人3年的工作经验(深度好文)

热门文章

  1. 面向对象,MATLAB的自定义类
  2. Springboot2Web原生组件注入
  3. Java设计模式-装饰者模式
  4. RHEL 7.5 部署 OpenStack Queens 踩坑记
  5. Second easyui框架学习
  6. bat转exe工具 Bat To Exe Converter v2.4.7 绿色版
  7. Objective-C路成魔【11-多态性、动态类型和动态绑定】
  8. Cocos2d-x--开发参考资料
  9. sharepoint中显示网页库item的webpart和显示列表库item的webpart
  10. HTML简介与历史版本