Exch

CVE-2017-0261及利用样本分析

偶尔善良 提交于 2021-02-18 07:38:11
CVE-2017-0261及利用样本分析 注意事项: 1. 本篇文章由 Gcow 安全团队复眼小组的 ERFZE 师傅原创,未经许可禁止转载 2. 本篇文章一共 2313 字, 39 张图,预计用时 20 分钟 3. 文中提及的方法仅供参考学习,若用在实际情况而造成的损失,本团队以及本公众号概不负责 4. 若本篇文章中存在说得有错误或者模糊的环节,希望各位看官可以在后台留言或者评论指出,本小组不胜感激! 0x01 漏洞描述 • 成因:打开Office文档时,FLTLDR.EXE将被用于渲染包含该漏洞的嵌入式EPS文件。该文件是由PostScript语言编写而成,可以被攻击者通过"save-restore"操作利用,其本质为一UAF漏洞。当用户打开包含格式错误的图形图像的文件时,或者当用户将格式错误的图形图像插入到 Office 文件时,该漏洞可能会受到利用。 • 影响版本:Microsoft Office 2010 Service Pack 2、Microsoft Office 2013 Service Pack 1、Microsoft Office 2016 • POC:kcufId's Github(https://github.com/kcufId/eps-CVE-2017-0261) 0x02 POC分析 笔者在网上寻找许久,并未找到包含EPSIMP32

matlab考试重点详解

给你一囗甜甜゛ 提交于 2021-02-10 17:47:32
  此帖是根据期末考试复习重点补充完成, 由于使用word编辑引用图片和链接略有不便, 所以开此贴供复习及学习使用。侵删 复习要点 第一章 Matlab的基本概念,名称的来源,基本功能,帮助的使用方法 1.基本概念和名称来源: MATLAB [1] 是美国 MathWorks 公司出品的商业 数学软件 , 用于算法开发、数据可视化、数据分析以及 数值计算 的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是matrix&laboratory两个词的 组合 ,意为矩阵工厂(矩阵实验室) 2.基本功能:   2.1数值计算和符号计算功能   MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。   2.2绘图功能,matlab提供了两个层次的绘图操作。一种是对图形句柄,进行底层绘图操作。另一种是建立在低层绘图操作之上的高层绘图操作。   2.3编程语言   MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高   2.4MATLAB工具箱   MATLAB包含两部分内容:基本部分和各种可选的工具箱。   MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。 3.帮助的使用方法   3.1 帮助命令   MATLAB帮助命令包括help命令和lookfor命令。

String之字符串排序

六眼飞鱼酱① 提交于 2020-12-04 17:51:21
键索引计数法 我们先介绍一种适合小整数键的简单排序方法,这是我们将要学习的字符串排序的基础,举个例子,我们希望将全班学生按组分类。如图 姓名 An Br Da Ga Ha Ja Jh Jn Ma 组号 2 3 3 4 1 3 4 3 1 姓名 Mb Mi Mo Ro Sm Ta Ta Tp Wh 组号 2 2 1 2 4 3 4 4 2 姓名 Wl Ws 组号 3 4 我们这里用数组a[]来存储每个元素,其中每个元素都包含=一个名字和一个组号,a[i].key()返回元素的组号。 排序后的结果 姓名 Ha Ma Mo An Mb Mi Ro Wh Br 组号 1 1 1 2 2 2 2 2 3 姓名 Da Ja Jn Ta Wl Ga Jh Sm Ta 组号 3 3 3 3 3 4 4 4 4 姓名 Tp Ws 组号 4 4 排序共分为四个步骤: (一)频率统计 组号在0-R之间,键为组号,用一个int数组(初始全为0)统计每个键出现的频率,如果键为r,则count[r]++,但是在实际使用中我们用count[r+1]++,至于为什么将r加1,这是为了计算方便(下一步详细说明) 我i们先来进行统计: An在第二组中,count[2+1]加1,count[3]==1继续扫描数组,Br在第三组,count[4]+1,count[4]==1,继续扫描,Da在第三组中,count[4]+1

汇编编写冒泡排序

别来无恙 提交于 2020-10-24 05:35:53
  关于汇编冒泡排序法。   小编在编的时候,因为定义的是字节类型的数据,MOV数据的时候却用的AX,导致发生错误(好久都没找出来哪里的问题)。 键盘输入十个十六进制字节数据 , 存入给定的存储单元中 , 用冒泡排序法将数据按从大到小的顺序排列好 , 在屏幕上显示出来 . 这里,我们采用两个字节分别存储16进制的两位,以空格间隔每个数据。 DATA SEGMENT DATA1 DB 40 , 0 , 40 DUP( 0 ) COUNT EQU 10 STR DB 0DH,0AH, " Please input 10 number: " ,0DH,0AH, " $ " RANKED DB 0DH,0AH, ' Ordered numbers: ' ,0dh,0ah, " $ " DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX CALL INPUT CALL RANK CALL DISPLAY MOV AH,4CH INT 21H INPUT PROC MOV SI, 0 MOV AH,09H MOV DX,OFFSET STR INT 21H MOV AH,0AH MOV DX,OFFSET DATA1 INT 21H RET INPUT ENDP RANK PROC MOV CX

《算法》笔记 13

為{幸葍}努か 提交于 2020-01-06 15:36:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 键索引计数法 频率统计 将频率转换为索引 数据分类 回写 低位优先的字符串排序 高位优先的字符串排序 许多重要而熟悉的问题都是基于字符串处理的,比如信息处理(根据给定的关键字搜索网页、文档)、通信系统(发送文本消息、电子邮件、下载电子书)、编程系统(程序是由字符串组成的,再由编译器或解释器将字符串转换为机器指令)、基因组学(生物学家根据密码子将DNA转换为由A、C、T、G四个字符组成的字符串,字符串处理已经成为了计算生物学研究的基石)。 对于许多排序应用,决定顺序的键都是字符串,利用字符串的特殊性质开发的字符串键排序方法将比之前学过的通用排序方法效率更高。 键索引计数法 键索引计数法是一种适用于小整数键的简单排序方法,同时也是后续两种字符串排序方法的基础。 平时会接触到很多小整数的场合,比如老师在统计学生分数时,希望将全班同学按组分类,这而组的编号一般都是较小的整数。这时键索引计数法。 以学生分组排序为例键索引计数法分为4步,数组如下 2 Anderson 3 Brown 3 Davis 4 Garcia 1 Harris 3 Jackson 4 Johnson 3 Jones 1 Martin 2 Martinez 2 Miller 1 Moore 2 Robinson 4 Smith 4 Taylor 4

两数互换的函数

巧了我就是萌 提交于 2019-12-05 20:00:34
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void Exch(int* x, int* y) { int tmp; tmp = *x; *x = *y; *y = tmp; printf("%d, %d", *x, *y); } int main(){ int a, b; scanf("%d%d", &a, &b); Exch(&a, &b); system("pause"); return 0; } 来源: https://my.oschina.net/u/4251026/blog/3134471

两数互换的函数

China☆狼群 提交于 2019-11-29 00:47:48
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void Exch(int* x, int* y) { int tmp; tmp = *x; *x = *y; *y = tmp; printf("%d, %d", *x, *y); } int main(){ int a, b; scanf("%d%d", &a, &b); Exch(&a, &b); system("pause"); return 0; } 来源: oschina 链接: https://my.oschina.net/u/4251026/blog/3134471

聊聊jdk http的HeaderFilter

折月煮酒 提交于 2019-11-27 16:19:44
序 本文主要研究一下jdk http的HeaderFilter。 FilterFactory java.net.http/jdk/internal/net/http/FilterFactory.java class FilterFactory { // Strictly-ordered list of filters. final LinkedList<Class<? extends HeaderFilter>> filterClasses = new LinkedList<>(); public void addFilter(Class<? extends HeaderFilter> type) { filterClasses.add(type); } LinkedList<HeaderFilter> getFilterChain() { LinkedList<HeaderFilter> l = new LinkedList<>(); for (Class<? extends HeaderFilter> clazz : filterClasses) { try { // Requires a public no arg constructor. HeaderFilter headerFilter = clazz.getConstructor().newInstance(); l