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. Ubuntu 安装 ffmpeg
  2. 关于static修饰符
  3. luogu P1037 【产生数】
  4. Runnable、Callable、Executor、Future、FutureTask关系解读
  5. pythonfor循环break_python 中 for 循环 if循环 break
  6. vue - 官方 - 上手
  7. cpu开核_电脑魔改篇——CPU散热器
  8. Android之解析XML总结(SAX、Pull、Dom三种方式)
  9. java websphere mq_如何在java中使用WebSphere MQ?
  10. android手机评测,Android手机 三大浏览器对比评测
  11. 【Paper-Attack Defense】Adversarial Label-Flipping Attack and Defense for Graph Neural Networks
  12. C++新特性探究(十一):enum class(struct)
  13. iOS __strong __weak @Strongify @Weakify
  14. Vue二次封装axios为插件使用
  15. (十四)洞悉linux下的Netfilteriptables:开发一个match模块【实战】
  16. 全网首发:成功解决UOS系统上运行JAVA程序任务栏名称问题
  17. CAN为什么会发送失败
  18. 136、易燃固体的概念
  19. 第七章 突变和随机化
  20. 寒江独钓:Windows内核安全编程(china-pub到货首发)

热门文章

  1. Flask带参URL传值的方法
  2. python合并csv文件、并利用结果进行计算_python合并csv文件
  3. P(A)P(B|A)=P(B)P(A|B)
  4. SpringMVC框架----RequestMapping注解
  5. window.open以post方式提交
  6. 关于VerifyRenderingInServerForm方法的思考(转)
  7. vscode运行html的插件_vscode前端常用插件推荐,搭建JQuery、Vue等开发环境
  8. idea 编译spring_《Spring源码解析(二)》构建 Spring5 源码工程,开启研读Spring源码之路...
  9. ctreectrl 设置选中_CTreeCtrl点击获得选中项
  10. 矩阵sum_Matlab-sum与cumsum函数