首页 > 其他分享 >保护模式番外篇

保护模式番外篇

时间:2024-03-24 23:33:43浏览次数:26  
标签:保护模式 ShellCode PTE 0x6A 地址 进程 NULL 番外篇

将ShellCode写入到0地址,通过函数指针指向NULL,来实现调用

主要是为了理解共享内存。

扣硬编码

代码:

char Shell[] ={
	0x6A,0,
	0x6A,0,
	0x6A,0,
	0x6A,0,
	0xb8,0,0,0,0,    
	0xff,0xd0,      
	0xc3           
};
int main()
{
	PVOID mem = VirtualAlloc(0,0x100,MEM_COMMIT,PAGE_EXECUTE_READWRITE); //向0申请空间,第一个参数是0,使用0会导致随机地址。这里不需要管
	printf("%x\n",mem);                                                  //打印一下,方便通过WinDbg查看PDE/PTE
	char user32[] = {'u','s','e','r','3','2','.','d','l','l',0};
	char MessageBoxAA[]={"MessageBoxA"}; 
	
	HMODULE hModule =  LoadLibraryA(user32);
	ULONG Meg = (ULONG)GetProcAddress(hModule,MessageBoxAA);  //获取MessageBox的地址
	*(PULONG)&Shell[9] = Meg;                                //写入ShellCode
	memcpy(mem,Shell,sizeof(Shell));
	system("pause");                                          //暂停一下,方便验证
	typedef void (*xxxxfunc)();                              //定义函数指针             

	xxxxfunc func = NULL;                                    //将指针指向0地址,(NULL ==0)
	func();                                    //调用
	return 0;
}

 

这里得到了VirtualAlloc函数申请的空间

 

拆分: 0x00    0x3b0   0x00

 

通过WinDbg挂0地址

1、找到CR3

 

2、获取PDE

 

3、获取PTE

 

拿到了PTE,将其挂到0地址

 

成功调用。

 

共享内存:A进程创建远程线程 实现B进程0地址挂物理页实现调用ShellCode。

实现步骤:

  1、创建一个B进程,弹出一个框,来加载User32.dll的MessageBox函数。也可是使用LoadLibaray加载。我这里直接调用一个MessageBox。

  2、在A进程中,使用VirtualAlloc申请一块内存,然后将ShellCode写入到该内存,然后拿到A进程的物理页,然后将该物理页挂到B进程的0地址。

  3、ShellCode需要注意的是,创建远程线程(CreateRemoteThread)有一个回调函数,其返回值是一个退出码(4字节)。

  

ShllCode{
	0x6A,0,
	0x6A,0,
	0x6A,0,
	0x6A,0,
	0xb8,0,0,0,0,
	0xff,0xd0,
	0xc2,4,0
}


B进程代码:
#include<Windows.h>
int main()
{
	MessageBox(NULL,NULL,NULL,NULL);
	system("pause");
	return 0;
}

A进程代码:

 

分别看到了A、B进程的CR3

 

1)通过WinDbg获取A进程的PTE

A进程的PTE 是036a9067 ,然后查看B进程 

 

 

可以看到将A进程的物理页挂到B进程的物理页。

 

实验成功。

 

标签:保护模式,ShellCode,PTE,0x6A,地址,进程,NULL,番外篇
From: https://www.cnblogs.com/zhongyongzixue/p/18093275

相关文章

  • 【云原生番外篇】到底什么是云原生,它的意义在于什么
    一、什么是云原生    大家好,通过前几章节的学习云原生的基础我们已经简单了解,借此机会和一些还未明白什么是云原生的小伙伴们探讨一下“什么是云原生”。云原生是一种构建和运行应用程序的方法,它基于容器、微服务和自动化运维等技术体系,旨在提高应用程序的高效性、可......
  • 《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外
    1.简介上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是相对前边做一个简单的总结分享给小伙伴们或者童鞋们。废话不多数,直接进入......
  • 保护模式:段机制
     一、段机制  内存是计算机系统的关键资源,程序必须被加载到内存中才可以被CPU所执行。程序运行过程中,也要使用内存来记录数据和动态的信息。在一个多任务的系统中,每个任务都需要使用内存资源,因此系统需要有一套机制来隔离不同任务所使用的内存,要使这种隔离即安全又高效,那么硬......
  • 保护模式
    一、理解保护模式  大多数现代操作系统(包括Windows9X/NT/XP和Linux等)都是多任务的,CPU的保护模式是操作系统实现多任务的基础。了解保护模式的底层原理对学习操作系统有着事半功倍的作用。  保护模式是为了实现多任务而设计的,其名称中的“保护”就是保护任务环境中各个人物......
  • 实模式和保护模式的区别
    实模式和保护模式是指计算机在不同工作模式下的运行状态和功能。实模式(RealMode):实模式是早期的x86计算机运行的基本模式,它提供了最初的兼容性,与早期的8086和80286处理器兼容。运行在实模式下的计算机仅能访问1MB的物理内存,并且没有内存保护机制。实模式使用物理地址寻址方......
  • Jenkins+基础系列16:番外篇--Manage and Assign Roles 角色权限控制插件
    摘自:https://blog.csdn.net/yangj507/article/details/1080832721、下载插件:Role-basedAuthorizationStrategy,安装成功后,可以重启下 2、菜单查看 3、菜单简介 4、ManageRoles设置5、AssignRoles设置 6、视图名称和job名称设置由于我们采用了表达式匹配......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(13)- Row-based(map、flatmap、aggre
    文章目录Flink系列文章一、maven依赖二、Row-based操作1、本示例的公共代码1、Map2、FlatMap3、Aggregate4、GroupWindowAggregate5、FlatAggregate本文介绍了通过TableAPI基于行的map、flatmap、aggregate、groupwindowaggregate和flataggregate操作,并以示例进行展示操......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(1)-完整版
    文章目录Flink系列文章一、maven依赖二、示例:基本的程序结构三、示例:通过TableAPI和SQL创建表四、示例:通过TableAPI和SQL创建视图1、示例:通过SQL创建视图2、示例:通过TableAPI创建视图五、示例:通过API查询表和使用窗口函数的查询1、示例:基本的查询表2、示例:Tumble窗口查询表......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(14)- 时态表的join(java版本)
    文章目录Flink系列文章一、maven依赖二、时态表的join1、统计需求对应的SQL2、Withoutconnnector实现代码3、Withconnnector实现代码1)、bean定义2)、序列化定义3)、实现本文通过两个示例介绍了时态表TemporalTableFunction的join操作。本文除了maven依赖外,没有其他依赖。一、m......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(11)- Group Windows(tumbling、slidi
    文章目录Flink系列文章一、maven依赖二、Groupwindow1、Tumble(TumblingWindows)2、Slide(SlidingWindows)3、Session(SessionWindows)本文介绍了表的groupwindows三种窗口(tumbling、sliding和session)操作,以示例形式展示每个操作的结果。本文除了maven依赖外,没有其他依......