DLL注入(CreateRemoteThread方式)
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方式)相关推荐
- DLL注入的方式 (转载自看雪学院)
DLL 注入技术的 N 种姿势 看雪学院 看雪学院,为IT专业人士.技术专家提供了一个民间交流与合作空间. 18 人赞同了该文章 本文中我将介绍DLL注入的相关知识.不算太糟的是,DLL注入技术可以被 ...
- [web安全]深入理解反射式dll注入技术
一.前言 dll注入技术是让某个进程主动加载指定的dll的技术.恶意软件为了提高隐蔽性,通常会使用dll注入技术将自身的恶意代码以dll的形式注入高可信进程. 常规的dll注入技术使用LoadLibr ...
- 【逆向】【Part 3】DLL注入
目录 一.通过自制调试器来理解其原理 1.调试器的工作原理 实现反汇编功能(重点) 重点分析exception_debug_event 重点:1.对调试器程序增加异常处理操作功能,核心API, CON ...
- 《逆向工程》dll注入基础
文章目录 21. windows消息钩取 21.2 消息钩子 21.3 SetWindowsHookEx 21.5.1 调试 23. dll注入 CreateRemoteThread() AppIni ...
- 实战dll注入(原理, 踩坑及排雷)
摘要 使用vs2019编写注入器程序, 在生成的注入器可用前, 踩了不少坑, 因此记录一下. 本文涉及三种恶意代码注入方法: 直接dll注入, 反射式dll注入, 镂空注入. 之所以选这三种注入方法, ...
- 深入理解反射式dll注入技术
前言 dll 注入技术是让某个进程主动加载指定的 dll 的技术.恶意软件为了提高隐蔽性,通常会使用 dll 注入技术将自身的恶意代码以 dll 的形式注入高可信进程. 常规的 dll 注入技术使用 ...
- x64dbg 修改为dll_c++笔记(dll 注入的实现)
//新建项目a //新建源文件a.c 代码如下 //生成a.exe#include<stdio.h> #include<stdlib.h> #include <windo ...
- 【安全技术】关于几种dll注入方式的学习
何为dll注入 DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程.我们注入的代码以动态链接库(DLL)的形式存在.DLL文件在运行时将按需加载(类似于UNIX系统中的共享库(shar ...
- Windows核心编程_远线程方式实现Dll注入
之前有介绍过HOOK的方式注入,这次介绍以其它方式注入,而无须HOOK,要知道在Windows这个浩荡的海洋里,API就是宝藏,找到足够多的宝藏那么你就是海贼王~! 实现思路如下: 首先打开一个进程的 ...
最新文章
- Ubuntu 安装 ffmpeg
- 关于static修饰符
- luogu P1037 【产生数】
- Runnable、Callable、Executor、Future、FutureTask关系解读
- pythonfor循环break_python 中 for 循环 if循环 break
- vue - 官方 - 上手
- cpu开核_电脑魔改篇——CPU散热器
- Android之解析XML总结(SAX、Pull、Dom三种方式)
- java websphere mq_如何在java中使用WebSphere MQ?
- android手机评测,Android手机 三大浏览器对比评测
- 【Paper-Attack Defense】Adversarial Label-Flipping Attack and Defense for Graph Neural Networks
- C++新特性探究(十一):enum class(struct)
- iOS __strong __weak @Strongify @Weakify
- Vue二次封装axios为插件使用
- (十四)洞悉linux下的Netfilteriptables:开发一个match模块【实战】
- 全网首发:成功解决UOS系统上运行JAVA程序任务栏名称问题
- CAN为什么会发送失败
- 136、易燃固体的概念
- 第七章 突变和随机化
- 寒江独钓:Windows内核安全编程(china-pub到货首发)
热门文章
- Flask带参URL传值的方法
- python合并csv文件、并利用结果进行计算_python合并csv文件
- P(A)P(B|A)=P(B)P(A|B)
- SpringMVC框架----RequestMapping注解
- window.open以post方式提交
- 关于VerifyRenderingInServerForm方法的思考(转)
- vscode运行html的插件_vscode前端常用插件推荐,搭建JQuery、Vue等开发环境
- idea 编译spring_《Spring源码解析(二)》构建 Spring5 源码工程,开启研读Spring源码之路...
- ctreectrl 设置选中_CTreeCtrl点击获得选中项
- 矩阵sum_Matlab-sum与cumsum函数