• 2024-07-04golang 内存逃逸 你应该知道的知识
    逃逸分析目录1.为什么要了解内存逃逸2.什么是逃逸分析3.内存逃逸的影响-性能和稳定性4.内存逃逸的原因5.内存逃逸的检测6.如何避免内存逃逸7.内存逃逸代码示例原文链接:一文弄懂Golang中的内存逃逸1.为什么要了解内存逃逸-内存逃逸是Go语言编程中一个特别需要注意的问
  • 2024-07-04PHP反序列化字符逃逸详解
    这段时间遇到几个关于反序列化的字符逃逸的程序,今天来分享一下经验。<?phpfunctionfilter($str){returnstr_replace('bb','ccc',$str);}classA{public$name='aaaa';public$pass='123456';}$AA=newA();$res=filter(serialize($AA));$c=unserial
  • 2024-06-21聊聊缺陷收敛率
    一位关注我公众号很久的同学后台留言,问了我一些关于质量度量的问题,和他沟通过程中交换了彼此的一些观点,也让我对质量度量有了一些新的理解。这篇文章聊聊在质量度量中,几个很有意思的指标,以及常见的误区。 什么是缺陷收敛率说到缺陷收敛率,就不得不先聊聊缺陷逃逸率。我在前面
  • 2024-06-03Go高阶16,面试官问我go逃逸场景有哪些,我???
    「逃逸分析」就是程序运行时内存的分配位置(栈或堆),是由编辑器来确定的,而非开发者。什么是栈栈只允许从线性表的同一端放入和取出数据,按照后进先出(LIFO,LastInFirstOut)的顺序,如下图:什么是堆对于堆在内存中的分配,我们可以类比成一个房间,分配内存时,需要找一块足够装下家具
  • 2024-05-29模板注入&沙箱逃逸
    模板注入SSTI服务端模板注入一、什么是SSTI首先web服务的实现中使用了模板引擎,并且将参数传递的值当作模板一部分进行渲染(渲染这个词可能有点抽象,可以简单理解为将参数作为代码的一部分解释并执行了),这就是SSTI,服务端模板执行。模板注入原理服务端可以使用哪些模板引擎?由于
  • 2024-05-26HotSpot逃逸分析
    JIT即时编译即时编译(Just-In-TimeCompilation,JIT)是一种强大的技术,旨在增强基于字节码的语言(如Java、.NET)的运行时性能。它的工作原理是在程序运行过程中动态地将频繁执行的字节码转换成本地机器码,从而大幅提高执行效率。这一过程克服了纯解释执行的性能瓶颈,同时保留了跨
  • 2024-05-25Go语言中局部变量的逃逸分析(从汇编的角度)
    Go语言中局部变量的逃逸分析(从汇编的角度)正常情况下,局部变量是存储在栈中的,如果将局部变量的地址当作函数值返回,这势必会导致悬挂指针的错误,因为函数返回后,函数的栈帧就会被回收,返回的局部变量地址自然就访问不到了。但是Go语言会进行逃逸分析,编译器如果遇到这种情况,就会将
  • 2024-05-17聊聊缺陷逃逸率
    辅导星球一位同学模拟面试,过程中聊到了缺陷逃逸率相关的话题。我在以前写的关于质量保障相关的文章中提到过缺陷逃逸率,这是一项比较重要的衡量软件产品交付质量的指标。所谓缺陷逃逸率,指的是软件产品线上发布后,发生在线上环境的缺陷数量与该版本迭代生命周期内总缺陷数量的比率,
  • 2024-05-08java的三种编译(JAVAC,JIT,AOT)
    1.javac把java代码编译成字节码(中间代码),然后由java虚拟机解释执行2.jit(运行时编译)把java代码直接编译成机器码,然后由java虚拟机直接运行(缓存)。有对客户端的C1和对服务器端的C2编译器缓存代码优化逃逸分析,是否超出范围。对不同逃逸状态做优化全局逃逸对象超出了方法或线
  • 2024-04-22黑水虻幼虫逃逸的问题
    黑水虻幼虫逃逸的问题在养殖黑水虻幼虫的时候,经常会遇到一个讨厌的问题:幼虫会逃跑。是的,当条件足够合适时,它们能垂直向上爬十多米。情况1:受到外界刺激,逃。例如刚开始把幼虫从一个盒子倒到另外一个盒子里,对它们来说就是earthquake。要么发呆,要么就赶紧逃命了。情况2:密度太大单
  • 2024-04-16java JIT优化
    JIT优化1.公告子表达式消除如果一个表达式的出现多次,并且每次的参数值没有改变,那只需要计算一次,接下来的碰到这个表达式,都会直接取上一次计算的结果如:intx=a*b+c+d*(a*b);  //a*b是一个公共子表达式,计算了一遍以后,第二次的时候,这个子表达式的参数值都没有变化,所以直接使
  • 2024-04-01php反序列化——字符逃逸增加
    题目 放到本地环境 发现是这种情况:a:2:{i:0;s:1:"x";i:1;s:5:"aaaaa";}分成两部分: a:2:{i:0;s:1:"x              ";i:1;s:5:"aaaaa";}现在需要做的就是自己构造第二部分:  ";i:1;s:6:"123456";}  一共20个字符经过preg_replace函数 
  • 2024-03-25Nodejs沙盒逃逸
    Buffer在较早一点的node.js版本中(8.0之前),当Buffer的构造函数传入数字时,会得到与数字长度一致的一个Buffer,并且这个Buffer是未清零的。8.0之后的版本可以通过另一个函数Buffer.allocUnsafe(size)来获得未清空的内存。注:关于BufferJavaScript语言自身只有字
  • 2024-03-22锁--问题
    1.什么是锁逃逸?锁逃逸是指在编译器优化过程中,当一个对象在一个同步块内部被加锁,但在同步块外部被其他线程引用或访问时,锁会从原本的范围内逃逸到更大的范围内,即锁对象的作用域扩大。这种情况下,原本只在同步块内有效的锁会变得更广泛地影响到其他线程,可能导致锁的级别升级(比如从偏
  • 2024-03-02逃逸分析
    一概念我们都知道,Java创建的对象都是被分配到堆内存上,但不绝对。通过对Java对象分配的过程分析,可以知道有两种情况会导致Java中创建出来的对象并一定分配在堆上。分别是Java中的逃逸分析和TLAB(ThreadLocalAllocationBuffer)线程私有的缓存区。 逃逸分析,是一种可以有效减
  • 2024-02-22jvm相关
    1、查看当前垃圾回收器指令:java-XX:+PrintCommandLineFlags-version2、STW:在执行垃圾回收线程的时候,停止所有任务线程3、CMS初始标记和重新标记需要STW4、三色标记算法黑白灰的标记,在并发标记阶段5、G1分区6、jvm调优命令jps:列出Java的进程jinfo[进程号]:列出该进
  • 2024-02-04云小课|Runc容器逃逸漏洞(CVE-2024-21626)安全风险通告
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。runc官方发布安全公告,披露runc1.1.11及更早版本中存在容器逃逸漏洞,攻击者会利用该漏洞导致容器逃逸
  • 2023-12-12逃逸分析案例
    1.函数返回局部指针变量funcAdd(x,yint)*int{res:=0res=x+yreturn&res}funcmain(){Add(1,2)}函数返回局部变量是一个指针变量,该函数执行结束,对应栈帧就会销毁,但是引用返回到函数外部,如果外部解析地址,就会导致程序访问非法内存,所以经过编辑器分析过后
  • 2023-12-08栈内存和堆内存概念、内存逃逸分析
    为了让程序员更好地专注于业务代码的实现,Go语言增加了垃圾回收机制,自动地回收不再使用的内存。Go语言有两部分内存空间:栈内存和堆内存。1.栈内存栈只允许往线性表的一端放入数据,之后在这一端取出数据,按照后进先出(LIFO,LastInFirstOut)的顺序,如图所示。往栈中放入元素
  • 2023-11-25云原生-docker逃逸
    docker安装我使用的kali安装安装docker步骤sudoapt-getupdatesudoapt-getinstallapt-transport-httpsca-certificatescurlgnupg-agentsoftware-properties-commoncurl-fsSLhttps://download.docker.com/linux/debian/gpg|sudoapt-keyadd-sudoadd-apt-repo
  • 2023-11-12JVM系列-第5章-堆-cnblog
    title:JVM系列-第5章-堆tags:-JVM-虚拟机categories:-JVM-1.内存与垃圾回收篇keywords:JVM,虚拟机。description:JVM系列-第5章-堆。cover:'https://gitee.com/youthlql/randombg/raw/master/logo/jvm.png'abbrlink:50ac3a1cdate:2020-11-1120:38:42
  • 2023-11-08【misc】[HNCTF 2022 Week1]calc_jail_beginner(JAIL) --沙盒逃逸
    这是一道python沙盒逃逸的题目:沙箱逃逸:就是在给我们的一个代码执行环境下,脱离种种过滤和限制,最终成功拿到shell权限的过程,其实就是闯过重重黑名单,最终拿到系统命令执行权限的过程,这里不理解没关系,多做两道题就知道了,老实说国内的沙箱逃逸的题不是很多,而且大多都是面向新手的?对
  • 2023-11-02go中的内存逃逸
    内存逃逸(memoryescape)是指在编写Go代码时,某些变量或数据的生命周期超出了其原始作用域的情况。当变量逃逸到函数外部或持续存在于堆上时,会导致内存分配的开销,从而对程序的性能产生负面影响。Go编译器会进行逃逸分析,以确定哪些变量需要在堆上分配内存。下面将详细分析Go语言
  • 2023-10-18go分析变量逃逸
    Go语言中的变量逃逸指的是编译器将一个变量从局部(函数内部)变量变为堆上分配的全局变量的情况。变量逃逸通常发生在以下情况:1. 返回指针:当函数返回一个局部变量的指针时,编译器将不得不将该变量分配到堆上,以便在函数返回后仍然可以访问它。func createObject() *Objec
  • 2023-10-14php反序列化键值逃逸
    又遇到键值逃逸了。这里提前说一下我的理解吧,这次理解比上几次遇到字符串逃逸还要深刻一点。譬如这次我是先写逃逸payload,然后使用"}; 闭合第一个逃逸部分,然后在后续插入新的字符串,也就是更改可控值,再用一次 "};闭合后续字符串。 详细的看题目吧。来自:[0CTF2016]piapiap