/*

* 作者: 冷却

* 时间: 2009年2月21日

* E-mail: leng_que@yahoo.com.cn

* 描述: 演示几种用C语言来执行shellcode(其实也就是机器码)的方式

* 备注:在WindowsXP SP3下测试成功

*/

//一段打开Windows计算器(calc.exe)的shellcode

unsigned char shellcode[] =

"/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";

//第一种执行方式

void exe_1()

{

void (*code)(void);

code = (void*)shellcode;

code();

}

//第二种执行方式

void exe_2()

{

( (void (*)(void))shellcode )();

}

//第三种执行方式

void exe_3()

{

__asm

{

lea eax,shellcode;

jmp eax;

}

}

//第四种执行方式

void exe_4()

{

__asm

{

mov eax,offset shellcode;

jmp eax;

}

}

//第五种执行方式

void exe_5()

{

__asm

{

mov eax,offset shellcode;

_emit 0xFF;

_emit 0xE0;

}

}

//主函数入口

void main()

{

exe_5();

}

c语言调用机器码,演示几种用C语言来执行shellcode(其实也就是机器码)的方式相关推荐

  1. c语言调用oracle函数返回值吗,C语言通过值和引用函数

    . 将参数值或数据传递给C语言函数有两种方法:通过值调用和通过引用调用.原始值在通过值调用时不修改,但通过引用调用时,在函数中可进行修改. 下面将分别讲解如何通过值调用和通过引用调用,并用使用示例逐个 ...

  2. c++头文件被c语言调用需要注意什么_嵌入式C语言之模块化编程

    C语言中的模块化体现在两个方面: 1 函数. 函数是C语言的最小单位,每个函数均实现一个独立的功能,于是每个函数均可以当做是一个最小的功能模块.这样,C语言就实现了最基本的模块化. 2 文件. 在C语 ...

  3. Facebook新AI模型实现直接从非英语语言翻译到另一种非英语语言

    据外媒报道,机器翻译技术自诞生以来走过了漫长的道路.虽然像谷歌这样的翻译曾经粗糙.不可靠,而且只对最基本的翻译有用,但如今,由于AI的力量,它们可以实现惊人的准确.然而一些古老的翻译方法仍然存在. 比 ...

  4. c语言调用子程序的例子,几个C语言编程应用实例.DOC

    PAGE PAGE 290 第13章 几个C语言编程应用实例 13.1 TMS320LF2407与图形液晶显示模块接口及应用 源程序代码: 所需的复位和中断向量定义文件"vectors.as ...

  5. C语言调用函数一次就自动结束了 不执行下面的程序 帮忙看看把

    我自己定义了一个打印print函数 ,在主程序中如果把这个print函数放在其他函数前执行了 程序直接就运行结束了 不执行在他后面的程序 .有人能看看这是什么原因吗?

  6. Ubuntu 下使用go语言调用ffmpeg推流

    Ubuntu 下使用go语言调用ffmpeg推流Ubuntu 下使用go语言调用ffmpeg推流 win10 安装 Ubuntu Windows Subsystem for Linux(WSL)适用于 ...

  7. c语言股票软件开发,一种使用Objcctivc语言开发的股票软件系统的制作方法

    本法发明基于移动IOS,使用Objcctivc-C语言技术,涉及一种使用Objcctivc语言开发的股票软件系统. 背景技术: 随着人们对移动炒股的需求越来越高,手机炒股软件也在不断进步,目前市场上充 ...

  8. Java jni 底层_JAVA语言语言调用底层语言的技术JNI解析

    本文主要向大家介绍了JAVA语言语言调用底层语言的技术JNI解析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. java语言调用底层语言的技术JNI解析. Java代码执行步骤 JN ...

  9. FOSS社区可以拯救197种濒临灭绝的印度语言吗?

    2008年1月21日,玛丽·史密斯·琼斯去世. 她的死不仅是一个人的丧生,而且是埃亚克语的最后一位讲者. Eyak在阿拉斯加中部南部使用. 由于我们有限的语言多样性,我们永久失去了一种颜色. 使用一种 ...

最新文章

  1. Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
  2. Android 为什么要有handler机制?handler机制的原理
  3. 【python】基础知识
  4. jQuery07源码 (3803 , 4299) attr() prop() val() addClass()等 : 对元素属性的操作
  5. python mysql查表_python进阶(十、mysql:单表查询)
  6. 资源放送丨Oracle 20C DataGuard 新特性解读PPT视频
  7. JAVA常用API或编程工具003--实现pdf在线阅读功能之pdf.js
  8. 【Proteus仿真】BME280温湿度气压传感器数据串口输出
  9. 数据中心SAN网络综合布线方案分析
  10. 刷机:酷比魔方iwork8 刷回双系统
  11. 对多项式求积分和微分
  12. java毕业生设计超市货品进销存系统前台计算机源码+系统+mysql+调试部署+lw
  13. 目标分割(六)RefineNet讲解
  14. 月薪过万算中产吗?别听专家忽悠,算清这8本账:你这是骂我
  15. element-ui 渐变色table
  16. Java中如何获取图片的长和宽
  17. The beatles-Yesterday
  18. 从中国制造到智造,看智能硬件品牌出海红利
  19. Ollydbg - Sabre-gold, Works with Themida and EXECryptor
  20. java实现老鼠迷宫游戏

热门文章

  1. RDS数据库通过内网导出到其他RDS实例和ESC上的MYSQL数据库(新手运维)
  2. java调用python,传参json字符串,含中文传参
  3. linux mysql jdbc_linux下jdbc连Mysql异常 郁闷了一天!
  4. 怎样通过vb设置透视表多项选择_数据透视表,数据统计分析的利器,你会了吗...
  5. mysql timestamp_详解mysql三大时间函数now()、current_timestamp() 和sysdate()
  6. mysql查询表的列名主键_Oracle中查看所有的表,用户表,列名,主键,外键
  7. java ee 导入项目_最代码网站java项目下载后遇到项目打开,导入,运行的问题QA汇总...
  8. 《2015中国移动应用性能管理白皮书》欢迎来看
  9. joomla \libraries\joomla\session\session.php 反序列化截断畸形字符串导致对象注入漏洞...
  10. CSS3 Transitions, Transforms和Animation的使用