CreateRemoteThread函数实现远程注入6部曲
来源:互联网 发布:座狼猎人 升星数据 编辑:程序博客网 时间:2024/05/29 14:40
实现远程注入的方法其实挺简单的:
第一步:打开要写入的进程,赋予权限。用API函数OpenProcess可以实现。
第二步:在目标进程的内存中分配一块内存空间。用API函数VirtualAllocEx可以实现。
第三步:将dll写入内存区域。用API函数WriteProcessMemory可以实现。
第四步:创建远程线程。用API函数CreateRemoteThread可以实现。
第五步:等待加载完成。用API函数WaitForSingleObject可以实现。
第六步:释放目标进程中申请的空间。用API函数VirtualFreeEx可以实现。
下面是控制台源码:
#include <Windows.h>#include <tchar.h>void main(){TCHAR dllPath[MAX_PATH] = _T("d:\\我的文档\\桌面\\注入小工具\\dll\\debug\\dlltest.dll");// HMODULE lib = LoadLibrary(_T("kernel32.dll"));// PTHREAD_START_ROUTINE proc =(LPTHREAD_START_ROUTINE)GetProcAddress(lib, "LoadLibraryW");// FreeLibrary(lib);//撤销duidll文件映像的映射,计数递减1LPVOID proc = LoadLibraryW;//线程的起始地址 //前3句注释等同这一句// LPVOID pFunc = GetModuleHandleA;HANDLE process = OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE, FALSE, 5360);//他让一个进程在另一个进程的地址空间中分配一块内存,执行成功就返回分配内存的首地址LPVOID param = VirtualAllocEx(process,NULL, sizeof(dllPath), MEM_COMMIT, PAGE_EXECUTE_READWRITE);if (param == NULL){VirtualFreeEx(process,NULL, 0, MEM_RELEASE);CloseHandle(process);}DWORD A;BOOL b = WriteProcessMemory(process, param, (LPVOID)dllPath, sizeof(dllPath), &A);HANDLE thread = CreateRemoteThread(process, NULL, 0,(LPTHREAD_START_ROUTINE)proc, param, 0, NULL);// 等待LoadLibrary加载完毕WaitForSingleObject(thread, INFINITE);// 释放目标进程中申请的空间VirtualFreeEx(process, param, 0, MEM_RELEASE);CloseHandle(thread);CloseHandle(process);}源码下载地址:http://download.csdn.net/detail/qyuewei/7653067
0 0
- CreateRemoteThread函数实现远程注入6部曲
- createremotethread()远程注入dll
- 使用远程线程注入的三个函数CreateRemoteThread、NtCreateThreadEx、RtlCreateUserThread
- CreateRemoteThread远程注入 使用例子
- 远程线程注入与CreateRemoteThread
- Delphi利用CreateRemoteThread远程注入
- CreateRemoteThread远程注入 使用例子
- DLL注入练习之远程注入-CreateRemoteThread()
- 注入(3)--远程线程注入(CreateRemoteThread)
- 用createRemoteThread远程注入(非DLL插入)
- 在Delphi中利用CreateRemoteThread远程注入例子
- 在Delphi中利用CreateRemoteThread远程注入例子
- 在Delphi中利用CreateRemoteThread远程注入例子
- 在Delphi中利用CreateRemoteThread远程注入例子
- [Delphi]利用createRemoteThread远程注入(非DLL插入)
- CreateRemoteThread远程线程向其他进程注入线程
- 使用CreateRemoteThread把代码远程注入指定exe执行
- Delphi利用CreateRemoteThread远程注入 详细 (非dll注入,是代码注入)
- HDU2191
- POJ2653-Pick-up sticks
- poj1067(威佐夫博奕)
- ARM中MMU地址转换理解
- 物理内存的描述
- CreateRemoteThread函数实现远程注入6部曲
- C#数据库WPF txt导入导出的实例
- 部分和问题
- myeclipse的An internal error occurred during: "Initialize Control Control"错误!!!
- javascript 无刷新select联动菜单
- C++学习随笔之六 数据类型转换
- java调用protobuf
- Dijkstra、Bellman_Ford、SPFA、Floyd算法复杂度比较
- 软件工程师为什么平凡跳槽?