shellcode是一种小型内嵌代码,一般用于入侵,和修补漏洞的。

这种代码是非常简洁的而且跨平台性能高,因为后面博主要写关于shellcode的文章,所以今天这里给大家介绍如何使用c语言写一个能够实现汇编到机器码的转换程序

首先你需要一个汇编解释器:

这里博主已经上传到网盘:

链接:https://pan.baidu.com/s/1TuF1OeBJzAwcwVrlR4d4BQ

提取码: dptv

主要是对工具进行了封装,没有技术难点,所以这里就不做额外的说明了

// ConsoleApplication11.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define ASSEM "mov ax,bx\r\nmov ax,bx\0"
int _tmain(int argc, _TCHAR* argv[])
{//构造汇编代码char _assem[1024] = {0};strcat_s(_assem, "bits 32\n");  //汇编头,代表多少位的编译//汇编体strcat_s(_assem, "mov ax,bx\r\n");  //汇编代码,每行汇编需要一个换行strcat_s(_assem, "mov ax,bx\0");      //末尾不需要换行//将汇编代码写到本地FILE* _fp = NULL;fopen_s(&_fp,"_asm", "w");fwrite(_assem, strlen(_assem), 1, _fp);fclose(_fp);//调用eax_asm汇编编译器编译system("eax_asm _asm -o hex");//编译完成后将编译好的二进制hex文件读入fopen_s(&_fp, "hex", "rb+");//获取文件大小fseek(_fp, 0, SEEK_END);  int _size = ftell(_fp); //移动回来fseek(_fp, 0, SEEK_SET);//读入时必须是存放到字节集里unsigned char hex[256] = { 0 };fread(hex, _size, 1, _fp);fclose(_fp);//打印printf("汇编代码:\n%s\n\n", ASSEM);printf("机器码:\n");for (int i = 0; i < _size; ++i){printf("%d ", hex[i]);}//机器码到汇编printf("\n\n机器码转汇编:\n");//调用ecx_asm汇编编译器编译system("ecx_asm -b 32 hex");getchar();return 0;
}

实现效果:

其中 00000开头是代表文件内的偏移地址,6689d8是代表十六进制的汇编机器码

c语言实现shellcode转换工具相关推荐

  1. c语言bmp转换jpeg_PDF格式转换工具

    Cisdem PDF Converter OCR for Mac是一款Mac平台的PDF格式转换工具,可以帮助我们将PDF格式的文件转换成Word, Text, Excel, ePub, Keynot ...

  2. Pandoc —— 标记语言转换工具(中文乱码问题)

    今次毕业设计,来个逼格高的,用 latex 编写.谁曾想,学院首先要收一份 word 版的.辣么多的 latex 公式如何转呀. Pandoc 是由 John MacFarlane 开发的标记语言转换 ...

  3. LVGL的多语言转换工具--MCU_Font_Release

    简介 在gitee发现一个很不错的工具 -- MCU_Font_Release 最近弄一个项目用到了LVGL,然后需要中英文切换,官方也提供一个转换工具,不过需要有字库,而且操作起来非常复杂.链接:h ...

  4. Google发布了一款名为J2ObjC的源代码语言转换工具

    Google发布了一款名为J2ObjC的源代码语言转换工具.J2ObjC并不是Java模拟器,而是将Java语言转换成Objective-C语言,并直接使用iOS基础框架.J2ObjC为满足客户端应用 ...

  5. 多语言文本到音素转换工具phonemizer实践

    音素是语言识别领域的最小单元,文本到音素的转换是TTS任务(文本转语音)中重要的步骤之一,最近用了下python包(phonemizer),实践了下,觉得还挺有用的,因此记录一下过程. (1) 下载源 ...

  6. c语言ae16进制转换,进制转换工具下载_16进制2进制转换with曼彻斯特编码 1.3 免费版_极速下载站_软件下载...

    16进制2进制转换with曼彻斯特编码是一款简单易用的转换工具,可以对16进制.2进制.曼彻斯特算法.10进制等进行互转,支持802.3曼彻斯特.标准曼彻斯特.差分三种转换模式,支持曼彻斯特编码每8位 ...

  7. 进制转换算法 (C语言实现一个简单的二进制转换工具) ------- 算法笔记010

    进制转换算法概念 其核心是利用栈的存储结构性质,进行数据的入栈出栈时的计算,让后将计算好的数据存入另一个栈内,最后再出栈输出.由于栈的先进后出特性,最后输出的顺序和输入的顺序是一样的.具体如上图. 栈 ...

  8. 助记词转换工具_有助于大流行的10种翻译工具

    助记词转换工具 With social distancing to keep us at arm's length from strangers, no traveling, and a scarci ...

  9. go编写命令行工具_编写者的命令行文档转换工具

    go编写命令行工具 今天,我们有足够的工具可用于在我们的计算机上编辑备忘录,信件,论文,书籍,演示幻灯片和其他文档. 这既有好处也有缺点:一方面,如果您不喜欢某个软件,则可以随时随地转到另一个软件上: ...

最新文章

  1. Linux Shell脚本之向脚本传递参数
  2. Python 调用C函数
  3. urllib 模块学习
  4. android 摄像头预览左右镜像_OpenJDK镜像的tag说明
  5. Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
  6. SSH框架整合——基于注解
  7. Android1 按钮
  8. Js打印object对象两种方法
  9. Debian 9 安装配置 Caddy Server
  10. 位运算初步入门状态压缩操作
  11. vs+python 更新pip 成功解决You are using pip version 9.0.3, however version 10.0.1 is available.
  12. Amesim学习——气体混合室仿真
  13. leetcode 1818 绝对差值和
  14. 矩阵 的逆、 迹、 秩
  15. 手游推广,经营一家游戏公司需要多少人?
  16. Python去除文章首尾空格换行符
  17. Linux-ssh隧道详解
  18. python监控文件或目录大小_python监控文件或目录的变化(实例代码)
  19. 利用Turf.js实现点线面几何体的拓扑关系判断
  20. java用hutool.excelUtil实现excel创建模板和下载模板

热门文章

  1. 法兰克机器人外部自动_行业数据 | 服务机器人销售额创新纪录:全球增长32
  2. linux 脚本启动oracle,linux自动启动 oracle脚本
  3. JavaScript在发送请求AJAX请求时,URL的域名地址是使用绝对地址还是相对地址?
  4. 设置广告 php,设置ecshop广告位
  5. html5历史纪录管理,HTML 5 新增方法以及历史管理
  6. excel处理几十万行数据_神奇吗?仅需4步,轻松在Excel处理300万行数据
  7. python中使用函数的优点_在python中使用自定义初始化函数而不是`__init__`的好处...
  8. sql08 访问接口没有oraoledb_如何配置交换机和防火墙以访问 Internet?
  9. python使用视频_Python中操作各种多媒体,视频、音频到图片的代码详解
  10. centos7 挂载磁盘_Linux磁盘管理之LVM