利用远程线程将代码注入到目标进程中执行

本文介绍了一种利用Windows API创建远程线程和DLL注入技术,将代码注入到其他进程中执行的方法。通过开启权限、查找目标进程、分配内存、复制DLL路径并创建远程线程,实现对目标进程的代码注入,从而控制或改变其行为。文中给出了详细的C语言代码示例,展示了如何在VB工程中替换特定控件的消息响应。
摘要由CSDN通过智能技术生成

/* ************************************
* remote.c
* 创建远程线程、将代码注入到其他进程中执行
**************************************/
/* 头文件 */
#include <windows.h>
#include <Tlhelp32.h>

/*************************************
* BOOL EnablePrivilege (PCSTR name)
* 功能 提升本权限
*防止有些进程我们权限不够,打不开人家
* 参数 PCSTR name 所需的权限
* 返回是否成功
**************************************/
DWORD EnablePrivilege (PCSTR name)
{
 HANDLE hToken;
 BOOL rv;
 //设置结构
 TOKEN_PRIVILEGES priv = { 1, {0, 0, SE_PRIVILEGE_ENABLED} };
 // 查找权限值
 LookupPrivilegeValue (
  0,
  name,
  &priv.Privileges[0].Luid
  );
 // 打开本进程Token
 OpenProcessToken(
  GetCurrentProcess (),
  TOKEN_ADJUST_PRIVILEGES,
  &hToken
  );
 // 提权
 AdjustTokenPrivileges (
  hToken,
  FALSE,
  &priv,
  sizeof priv,
  0,
  0
  );
 // 返回值,错误信息,如果操作成功,则应为ERROR_SUCCESS,为O
 rv = GetLastError();
 // 关闭Token
 CloseHandle (hToken);
 return rv;
}

/*************************************
* BOOL LoadRometeDll(DWORD dwProcessId, LPTSTR lpszLibName)
* 功能 通过创建远程线程给其他进程加载Dll
*
* 参数 DWORD dwProcessId 目标进程PID
*  LPTSTR lpszLibName Dll的路径
* 返回是否成功
**************************************/
BOOL LoadRometeDll(DWORD dwProcessId, LPTSTR lpszLibName)
{
 BOOL   bResult          = FALSE;
 HANDLE hProcess         = NULL;
 HANDLE hThread          = NULL;
 PSTR   pszLibFileRemote = NULL;
 DWORD  cch;
 PTHREAD_START_ROUTINE pfnThreadRtn;

 __try
 {
  // 获得想要注入代码的进程的句柄.
  hProcess = OpenProcess(
   PROCESS_ALL_ACCESS, <

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值