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