代码注入

代码注入

代码注入的核心就是注入可以独立运行的代码

什么叫可独立运行的代码?

就是代码与数据同时注入,且代码中并没有直接使用API,也不直接使用字符串,

而是以引用的方式使用API和字符串(意思就是说间接的先使用一个地址,然后这个地址里面放着数据),而不是直接硬编码数据(直接硬编码会造成在当前进程有效,但是换一个进程,数据地址就变了,那么直接硬编码就出引用错误的地址)

这样才能保证代码可以独立运行(也就是说这个代码放到任意一个进程中都可以运行)

DLL注入为什么可以直接调用API和数据?

因为DLL注入是将所用的代码与数据全部放在一个DLL文件中,代码与数据是共存的。

而代码注入是将代码与数据分开注入的

实例:

//code_inject.exe
#include "windows.h"
#include "stdio.h"


typedef struct _THREAD_PARAM
{
   
	FARPROC pFunc[2];
	char szBuf[4][128];
}THREAD_PARAM, *PTHREAD_PARAM;

typedef HMODULE(WINAPI* PLOADLIBRARYA)
(
	LPCSTR lpLibFileName
	);

typedef FARPROC(WINAPI* PGETPROCADDRESS)
(
	HMODULE hMod,
	LPCSTR lpProcName
	);

typedef int (WINAPI* PMESSAGEBOXA)
(
	HWND hWnd,
	LPCSTR lpText,
	LPCSTR lpCaption,
	UINT uType
	);

DWORD WINAPI ThreadProc(LPVOID lParam)
{
   
	HMODULE hMod = NULL;
	PTHREAD_PARAM pParam = (PTHREAD_PARAM)lParam;
	FARPROC pFunc 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值