0x01 前言 释放重引用的英文名名称是 Use After Free,也就是著名的 UAF 漏洞的全称.从字面意思可以看出 After Free 就是释放后的内存空间,Use 就是使用的意思,使用释放后的内存空间.该漏洞的历史可以追溯到 2005 年,当时第一个 UAF 漏洞编号为 CVE-2005-4360,到 2008 年之后结合有关技术已经能稳定的利用了 鉴于 UAF 漏洞的特殊性(需要精确的控制堆内存空间的覆盖),所以该漏洞较为成功的利用多出现在浏览器中,因为浏览器可以运行 JavaS…
假设你有一个方法,通过创建临时的List来收集某些数据,并根据这些数据来统计信息,然后销毁这个临时列表.这个方法被经常调用,导致大量内存分配和释放以及增加的内存碎片.此外,所有这些内存管理都需要时间,并且可能会影响性能. 对于这些情况,您可能希望将所有数据保留在堆栈(stack)中,并完全避免内存分配.我们向您展示了几种可以实现此目的的方法. 即使这些用例对你来说不适用,但你也可能会发现本文很有用,因为它使用了一些有趣的概念和Delphi语言功能. 堆栈与堆,值与参考类型(Stack vs He…
本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容,但无法进行处理. - WSDL 文档包含无法解析的链接. - 下载“http://admin-pc/IISHostService/Service1.svc?xsd=xsd0”时出错. - 基础连接已经关闭: 接收时发生错误. - 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接..…
  昨天有人在QQ群里问到如何判断一个C++对象是否在堆栈上, 我在网上搜索了下, 搜到这个么一个CSDN的帖子http://topic.csdn.net/t/20060124/10/4532966.html ,可惜它也没有给出一个合适的答案. 要解答这个问题,其实就是要知道的堆栈的起始地址, 而我们知道堆栈其实就是一段有相同属性的内存页面,而Windows也是有API让我们查询虚拟内存的页面分配情况的.所有我们可以通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了…
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font: 1.21em/1.2 KaTeX_M…
前言 主流的分布式锁一般有三种实现方式: 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 之前我在博客上写过关于mysql和redis实现分布式锁的具体方案:https://www.cnblogs.com/wang-meng/p/10226618.html里面主要是从实现原理出发. 这次[分布式锁]系列文章主要是深入redis客户端reddision源码和zk 这两种分布式锁的实现原理. 可靠性 首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:…
前言 本篇适用于了解ReentrantLock或ReentrantReadWriteLock的使用,但想要进一步了解原理的读者.见于之前的分析都是借鉴大量的JDK源码,这次以流程图的形式代替源码,希望读者能有更好的阅读体验.有兴趣了解源码的读者也可以借鉴本篇的分析成果做源码分析. 在<从源码分析ReentrantLock原理>这一篇文章中分析了以非阻塞同步算法为基础实现的可重入独占锁ReentrantLock.所谓** “独占” 即同一时间只能有一个线程持有锁.而 “重入” **是指该线程如果…
漏洞名称: Linux Kernel 空指针逆向引用拒绝服务漏洞 CNNVD编号: CNNVD-201306-449 发布时间: 2013-07-01 更新时间: 2013-07-01 危害等级:    漏洞类型:   威胁类型: 远程 CVE编号: CVE-2013-2206 漏洞来源: Vlad Yasevich Linux Kernel是美国Linux基金会发布的开放源码操作系统Linux所使用的内核.         Linux kernel中存在拒绝服务漏洞.攻击者可利用该漏洞使受影响…
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效果的实现原理: 实现原理 通过input的 type = file属性和js的内置FileReader对象,利用FileReader对象的readAsDataURL方法,把图片数据转成base64字符串数据,然后把这个base64字符串数据赋值给一个图片标签的src. 伪代码 //input标签,获…
Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计算机网络的都比较熟悉,如下图所示是一个OSI七层模型.TCP/IP四层模型以及五层模型的对比图.(此图来源于计算机网络第七版-谢希仁版本书). 其中OSI模型以及TCP/IP的模型大伙都应该熟悉,至于说五层模型,就是讲网络接口层分成 数据链路层.和物理层,关于这个问题,谢老这么解释的 2.计算机网络…