c语言实现shellcode转换工具
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转换工具相关推荐
- c语言bmp转换jpeg_PDF格式转换工具
Cisdem PDF Converter OCR for Mac是一款Mac平台的PDF格式转换工具,可以帮助我们将PDF格式的文件转换成Word, Text, Excel, ePub, Keynot ...
- Pandoc —— 标记语言转换工具(中文乱码问题)
今次毕业设计,来个逼格高的,用 latex 编写.谁曾想,学院首先要收一份 word 版的.辣么多的 latex 公式如何转呀. Pandoc 是由 John MacFarlane 开发的标记语言转换 ...
- LVGL的多语言转换工具--MCU_Font_Release
简介 在gitee发现一个很不错的工具 -- MCU_Font_Release 最近弄一个项目用到了LVGL,然后需要中英文切换,官方也提供一个转换工具,不过需要有字库,而且操作起来非常复杂.链接:h ...
- Google发布了一款名为J2ObjC的源代码语言转换工具
Google发布了一款名为J2ObjC的源代码语言转换工具.J2ObjC并不是Java模拟器,而是将Java语言转换成Objective-C语言,并直接使用iOS基础框架.J2ObjC为满足客户端应用 ...
- 多语言文本到音素转换工具phonemizer实践
音素是语言识别领域的最小单元,文本到音素的转换是TTS任务(文本转语音)中重要的步骤之一,最近用了下python包(phonemizer),实践了下,觉得还挺有用的,因此记录一下过程. (1) 下载源 ...
- c语言ae16进制转换,进制转换工具下载_16进制2进制转换with曼彻斯特编码 1.3 免费版_极速下载站_软件下载...
16进制2进制转换with曼彻斯特编码是一款简单易用的转换工具,可以对16进制.2进制.曼彻斯特算法.10进制等进行互转,支持802.3曼彻斯特.标准曼彻斯特.差分三种转换模式,支持曼彻斯特编码每8位 ...
- 进制转换算法 (C语言实现一个简单的二进制转换工具) ------- 算法笔记010
进制转换算法概念 其核心是利用栈的存储结构性质,进行数据的入栈出栈时的计算,让后将计算好的数据存入另一个栈内,最后再出栈输出.由于栈的先进后出特性,最后输出的顺序和输入的顺序是一样的.具体如上图. 栈 ...
- 助记词转换工具_有助于大流行的10种翻译工具
助记词转换工具 With social distancing to keep us at arm's length from strangers, no traveling, and a scarci ...
- go编写命令行工具_编写者的命令行文档转换工具
go编写命令行工具 今天,我们有足够的工具可用于在我们的计算机上编辑备忘录,信件,论文,书籍,演示幻灯片和其他文档. 这既有好处也有缺点:一方面,如果您不喜欢某个软件,则可以随时随地转到另一个软件上: ...
最新文章
- Linux Shell脚本之向脚本传递参数
- Python 调用C函数
- urllib 模块学习
- android 摄像头预览左右镜像_OpenJDK镜像的tag说明
- Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
- SSH框架整合——基于注解
- Android1 按钮
- Js打印object对象两种方法
- Debian 9 安装配置 Caddy Server
- 位运算初步入门状态压缩操作
- vs+python 更新pip 成功解决You are using pip version 9.0.3, however version 10.0.1 is available.
- Amesim学习——气体混合室仿真
- leetcode 1818 绝对差值和
- 矩阵 的逆、 迹、 秩
- 手游推广,经营一家游戏公司需要多少人?
- Python去除文章首尾空格换行符
- Linux-ssh隧道详解
- python监控文件或目录大小_python监控文件或目录的变化(实例代码)
- 利用Turf.js实现点线面几何体的拓扑关系判断
- java用hutool.excelUtil实现excel创建模板和下载模板
热门文章
- 法兰克机器人外部自动_行业数据 | 服务机器人销售额创新纪录:全球增长32
- linux 脚本启动oracle,linux自动启动 oracle脚本
- JavaScript在发送请求AJAX请求时,URL的域名地址是使用绝对地址还是相对地址?
- 设置广告 php,设置ecshop广告位
- html5历史纪录管理,HTML 5 新增方法以及历史管理
- excel处理几十万行数据_神奇吗?仅需4步,轻松在Excel处理300万行数据
- python中使用函数的优点_在python中使用自定义初始化函数而不是`__init__`的好处...
- sql08 访问接口没有oraoledb_如何配置交换机和防火墙以访问 Internet?
- python使用视频_Python中操作各种多媒体,视频、音频到图片的代码详解
- centos7 挂载磁盘_Linux磁盘管理之LVM