首页
学习
活动
专区
圈层
工具
发布

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK16特性讲解】

3.JEP 376:ZGC:并发线程堆栈处理 概述 将 ZGC 线程堆栈处理从安全点移动到并发阶段。 目标 从 ZGC 安全点中删除线程堆栈处理。 使堆栈处理变得懒惰、协作、并发和增量。...为了超越我们今天所拥有的,并满足在 GC 安全点内花费的时间不超过一毫秒的期望,即使在大型机器上,我们也必须将这种每线程处理,包括堆栈扫描,移出并发阶段。...在这项工作之后,在 ZGC 安全点操作中基本上不会做任何重要的事情。 作为该项目的一部分构建的基础设施最终可能会被其他项目使用,例如 Loom 和 JFR,以统一延迟堆栈处理。...动机 多年来,各种库、框架、工具和应用程序的开发人员以损害安全性和可维护性的方式使用 JDK 的内部元素。特别是: 包的一些非 public类、方法和字段 java....--illegal-access=debug``warn除了为每个非法反射访问操作发出警告消息和堆栈跟踪之外,其他都相同。

2.1K50

Microsoft Access Macro (.MAM) 快捷方式钓鱼测试

创建一个MAM文件 我们先来创建一个可以弹出本地计算机的,简单Microsoft Access数据库来练练手。首先,我们打开MS Access并创建一个空数据库。如下: ?...在Microsoft Access中,我们的module将包含我们的代码库,而macro将会使Access执行VB代码。 以下是我编写的一个简单的计算机弹出代码: ?...一旦目标用户点击了我们的钓鱼链接(在使用Edge浏览器的情况下),系统将会提示他们打开或保存文件。 ? 接着,系统会再次向用户弹出安全警告提示框。 ?...最后,系统还会警告一次,并将向用户显示远程托管主机的IP或域名(希望会有说服力)。而在此之后将不会出现任何的安全警告,以及阻止此macro payload运行的情况。 ?...缓解措施 在Microsoft Office 2016中,你可以启用GPO以阻止来自网络中的宏执行或为每个办公产品设置以下注册表项。

1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JAVA16版本.JDK16即将发布,你准备好了吗?

    JDK 16 新增了基于值的类警告和密封类(第二次预览)作为计划功能,还加入了一系列新的特性,从外部链接程序API,到模式匹配,再到用于垃圾回收的并发线程堆栈处理。...在 Java 平台中对于任何基于值的类实例进行同步的错误尝试,会予以警告。推动这一努力的是 Valhalla 项目,该项目正在以原始类的形式对 Java 编程模型进行重大改进。...作为 Jigsaw 项目 的一部分,此提案的目标包括提高 JDK 的安全性和可维护性,并鼓励开发人员从直接使用内部元素逐渐迁移为使用标准 API,这样开发人员和最终用户都可以轻松地升级到 Java 的未来版本...开发人员可以使用现有的发行版(如JDK 11)来测试现有代码,通过使用 --illegal-access=warn 来识别通过反射访问的内部元素,使用 --illegal-access=debug 来定位错误的代码...该计划的目标包括从ZGC安全点中删除线程堆栈处理,使堆栈处理变得懒性、协同、并发和增量,从ZGC安全点移除所有其它单一线程的 root 处理,并为其它虚拟机子系统提供了一种延迟处理堆栈的机制。

    29510

    代码中%80的非逻辑性代码都可以被它发现

    有了它,基本可以检查出代码中80%的非逻辑性错误。这就是本文要介绍的主角--PC-lint。...如何使用PC-lint PC-lint能够在Windows、MS-DOS和OS/2平台上使用,Linux平台可使用FlexeLint、Splint等替代工具。本文介绍仅PC-lint的使用。...注:PC-lint为商用软件。 安装方法不在此介绍,和其他普通软件的安装方式一样。安装完成后,在安装目录下会有lint-nt.exe程序。...总结 通过示例程序可以看出,PC-lint确实能够发现一些隐藏的问题,但实际上它的强大远不止我们前面所看到的那样,利用好PC-lint能够帮助我们在运行程序之前就发现很多难以察觉的问题。...本文本意为介绍PC-lint的用途,因此对PC-lint的详细使用并没有做过多介绍,有兴趣的读者可以参考网上的资料进行配置学习,PC-lint所报的警告号都可以通过官方PC-lint错误码查看其含义,帮助修正我们的程序

    1.8K40

    Chrome 安全策略 - 私有网络控制(CORS-RFC1918)

    什么是私有网络访问 Private Network Access(以前称为 CORS-RFC1918 )限制了网站向私有网络上的服务器发送请求的能力。根据规范,此类请求只允许来自安全上下文。...从非安全环境要求到私有网络请求已被弃用 在私有网络访问规范中,只有当启动上下文是安全的时,才允许从公共网站向私有网络的请求。...DevTools 警告 从非安全上下文发起私有网络请求时,Chrome 在控制台中打印弃用警告: 从非安全上下文发起请求时, DevTools问题 面板中会显示一个问题: Chrome 92 将直接弃用...从 Chrome 92 开始,Chrome 将直接阻止从非安全上下文发起的私有网络请求,并且将在 DevTools 控制台中记录一条 TypeError 错误。...推荐的开发人员操作 强烈建议开发者设置 Reporting-To Header ,以跟踪意外的非安全私有网络请求。这也可以警告你其他即将弃用和错误的写法。

    6.3K40

    Office文档嵌入对象点击执行的社工技巧

    在Office 2016和Office 365还添加了其它的安全措施(如GPO等),这样当用户从Internet下载文档时宏将完全被禁用,以及阻止在Packer文件扩展名黑名单列表中的文件类型运行。...MSRC指出“这种技术需要结合大量的社会工程学技巧:受害者必须要对安全警告说’Yes’ ,且在非保护模式下运行”攻击者才有可能得手,因此并不会针对该问题发布任何的修复程序。...共享和网站)上的文件。...这将弹出一个警告对话框,但此对话框与其他警告对话框略有不同,如下图所示。 ? Forms.HTML:Image.1支持src属性,可用于配置文档中显示的图像。...不仅于此,我们还要通过通过部署诸如应用程序白名单和攻击面减少规则(或类似的替代方案)来提高攻击者的门槛。但更重要的是,做好在安全事件发生之前的安全防护工作,以及追捕入侵者让他们为此付出沉重代价。

    2.5K60

    谈谈你对堆栈理解(初稿)

    如何理解如下: 要想理解堆栈区别-->必须理解经典5中经典io模型(同步,异步,阻塞和阻塞) 要想理解同步,异个该你--->必须知道进程和线程各种区别 要想阻塞,非阻塞--->操作系统对进程状态 然后回过堆的内存管理各种方式...了解这些细节,你将能够正确利用提供的 API 编写更好的非阻塞性应用程序。...调用堆栈是一个数据结构,它记录了我们在程序的基本位置。如果我们进入一个函数,我们把它放在堆栈的顶部。如果我们从一个函数返回,我们弹出堆栈的顶部。这就是堆栈做的事情。...Take a look at the following code: 这正是在抛出异常时构造堆栈跟踪的方式 — 当异常发生时,它基本上是调用堆栈的状态。...Event Loop是一个程序结构,用于等待和发送消息和事件。

    1.7K20

    CA2109:检查可见的事件处理程序

    只要处理程序和事件签名匹配,就可以将调用公开方法的事件处理程序(委托类型)添加到任何事件中。 事件可能由任何代码引发,并且经常由高度可信的系统代码引发,以响应用户操作(例如单击某个按钮)。...向事件处理方法添加安全检查不会阻止代码注册调用方法的事件处理程序。 需求无法可靠地保护由事件处理程序调用的方法。 安全需求通过检查调用堆栈上的调用方,帮助防止代码受到不可信任的调用方利用。...事件处理程序的方法运行时,将事件处理程序添加到事件的代码不一定会出现在调用堆栈上。 因此,在调用事件处理程序方法时,调用堆栈可能仅具有高度受信任的调用方。 这会使事件处理程序方法提出的需求成功。...由于这些原因,只有在检查事件处理方法后才能评估不解决此规则冲突的风险。 检查代码时,请考虑以下问题: 你的事件处理程序是否执行任何危险或可利用的操作,如断言权限或禁止非托管代码权限?...是否可以将所有危险功能移出事件处理程序? 如果提出了安全需求,是否可以通过其他方式实现? 何时禁止显示警告 仅在仔细检查安全性以确保你的代码不会构成安全威胁之后,才能禁止显示此规则的警告。

    81700

    【STM32H7教程】第68章 STM32H7的系统bootloader之USB DFU方式固件升级

    第43行,这个设置在RTOS应用程序中比较重要,因为基于Cortex-M内核的RTOS任务堆栈基本都是使用线程堆栈指针PSP。...这样特别说一点,如果勾上此选项后,下载完毕程序后,会自动断开连接,并弹出一些列窗口,最终弹出下面这个窗口: 弹出这个窗口并不是表示下载失败了,而是下载完成后退出了系统bootloader。  ...第3步,完成下载后的效果如下: 下载完成后板子重新上电就可以看到程序已经成功下载了。...调用一次蜂鸣器处理: 蜂鸣器处理是在滴答定时器中断里面实现,每10ms执行一次检测。...调用一次蜂鸣器处理: 蜂鸣器处理是在滴答定时器中断里面实现,每10ms执行一次检测。

    2.3K20

    MIT 6.858 计算机系统安全讲义 2014 秋季(一)

    现代版本的 gcc 和 Visual Studio 在程序使用不安全函数(如 gets())时会发出警告。一般来说,你不应该忽略编译器警告。 将警告视为错误! 好处: 首先避免问题!...常见目标是使用堆栈上的缓冲区的返回地址。在实践中,任何内存错误都可能起作用。函数指针,C++ vtables,异常处理程序等。 需要一些有趣的代码在进程的内存中。...ASLR 在 64 位机器上更实用(很容易有 32 位的随机性)。 对手可能提取随机性。 程序可能生成包含指针的堆栈跟踪或错误消息。...如果应用程序开发人员需要同时维护代码和策略,这将成为问题。 对应用程序开发人员来说,可能有助于澄清策略。...可能会有微妙之处:gzip压缩级别错误。 它提供了哪些安全保证? 提供给应用程序开发人员的保证:沙盒只能在打开的 FD 上操作。

    52110

    【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令

    文章内容复现于小迪安全相关课程 Win本地用户-AT&SC&PS命令 利用Windows特性,权限继承 1、at命令提权的原理 at命令是一个计划命令,可以在规定时间完成一些操作...(如 Symantec 的 PC Anywhere)允许你在远程系统上执行程序,但它们可能很难设置并要求你在想要访问的远程系统上安装客户端软件。...PsExec 是一种轻量级 telnet-replacement,可用于在其他系统上执行进程,为控制台应用程序提供完全交互性,而无需手动安装客户端软件。...-accepteula -s -i -d cmd #调用运行cmd win2016: win10(非服务器版本): 版本一: 版本二: 服务器版本基本可以, PC个人电脑具体情况看win10...都能提权成功 测试版本win10 个人PC Web权限 - Test in Win2008 12 16 webshell权限是不能直接进行令牌窃取的,配合烂土豆漏洞(ms16-075)

    50210

    【STM32H7教程】第69章 STM32H7的系统bootloader之串口IAP固件升级

    第43行,这个设置在RTOS应用程序中比较重要,因为基于Cortex-M内核的RTOS任务堆栈基本都是使用线程堆栈指针PSP。...Run after programming选项可以根据需要勾上,如果勾上此选项后,下载完毕程序后,会自动断开连接,并弹出一些列窗口,最终弹出下面这个窗口: 弹出这个窗口并不是表示下载失败了,而是下载完成后退出了系统...第3步,完成下载后的效果如下: 下载完成后板子重新上电就可以看到程序已经成功下载了。...调用一次蜂鸣器处理: 蜂鸣器处理是在滴答定时器中断里面实现,每10ms执行一次检测。...调用一次蜂鸣器处理: 蜂鸣器处理是在滴答定时器中断里面实现,每10ms执行一次检测。

    2.8K10

    效率编程 之「泛型」

    实际上,原生态类型List与 Java 平台没有泛型之前的接口类型List完全一样。但是,如果使用原生态类型,就失掉了泛型在安全性和表述性方面的所有优势。...原生态类型只是为了与引入泛型之前的遗留代码进行兼容和互用而提供的。 第 2 条:消除非受检警告以及列表优先于数组 要尽可能地消除每一个非受检警告。...如果无法消除警告,同时可以证明引起警告的代码是类型安全的,只有在这种情况下,可以用一个@SuppressWarnings("unchecked")注解来禁止这条警告。...为了获得泛型带来的类型安全,在面对数组和列表都能解决的问题时,要优先选择列表。 第 3 条:利用有限制通配符来提示 API 的灵活性 参数化类型是不可变的。...现在假设我们有一个SimpleStackPECS和类型为Object的变量,如果从堆栈中弹出每一个元素,并将它保存到该变量中: SimpleStackPECS simpleStack

    68640

    CVE-2017-5123 漏洞利用全攻略

    需要注意的一点是:这些用户访问函数在内存读写过程中处理页面错误,在访问未映射内存时不会导致崩溃。 漏 洞 某些系统调用要求多次调用put/get_user以实现内核与用户区之间的数据复制。...为避免重复检查和SMAP启用/禁用的额外开销,内核开发人员将缺少必要检查的不安全版本_put_user与unsafe_put_user涵盖进来。这样一来,忘记额外检查就在意料之中了。...unsafe_put_user的一个优秀属性是在访问无效内存地址时不会崩溃,仅返回-EFAULT。因此,我们仅需猜测内核数据段潜在地址,直至显示不同错误代码、找到内核地址。...辗转思考多种漏洞利用方法后确定了几个方向: 在内核数据段找到一个对象,其索引/大小/值为零将导致超出内存访问边界; 在内核中覆盖一个自旋锁,用来创建竞争条件; 尝试覆盖内核堆栈上的基址指针或其他值; 触发可能导致在内核堆栈上创建有用结构的操作...好在原语已得到优化,可以使用fork() 来创建子对象,然后使waitid写入非零值。尽管如此,我们仍无法控制多数siginfo结构。唯一可用值是pid和status,两者都存在一定限制。

    1.4K70

    CVE-2017-5123 漏洞利用全攻略

    需要注意的一点是:这些用户访问函数在内存读写过程中处理页面错误,在访问未映射内存时不会导致崩溃。 漏洞 某些系统调用要求多次调用put/get_user以实现内核与用户区之间的数据复制。...为避免重复检查和SMAP启用/禁用的额外开销,内核开发人员将缺少必要检查的不安全版本_put_user与unsafe_put_user涵盖进来。这样一来,忘记额外检查就在意料之中了。...unsafe_put_user的一个优秀属性是在访问无效内存地址时不会崩溃,仅返回-EFAULT。因此,我们仅需猜测内核数据段潜在地址,直至显示不同错误代码、找到内核地址。...辗转思考多种漏洞利用方法后确定了几个方向: 在内核数据段找到一个对象,其索引/大小/值为零将导致超出内存访问边界; 在内核中覆盖一个自旋锁,用来创建竞争条件; 尝试覆盖内核堆栈上的基址指针或其他值; 触发可能导致在内核堆栈上创建有用结构的操作...好在原语已得到优化,可以使用fork() 来创建子对象,然后使waitid写入非零值。尽管如此,我们仍无法控制多数siginfo结构。唯一可用值是pid和status,两者都存在一定限制。

    1.7K70

    从Java 8升级到Java 11的注意事项

    本文重点介绍对性能、诊断和工作效率有影响的更改。 模块 模块解决在大型应用程序(在 classpath 上运行)中难以管理的配置和封装问题。模块是 Java 类和接口以及相关资源的自述性集合。...StackWalker 类(在 Java 9 中添加)提供堆栈的快照,并提供方便程序员对堆栈跟踪使用方式进行精细控制的方法。...从 jdeprscan 和 jdeps 获取的警告和错误来自编译器。使用 jdeprscan 和 jdeps 的优点是,可以在现有的 jar 和类文件(包括第三方库)上运行这两个工具。...直接运行的目的是查看执行时会出现哪些警告和错误。此方法可以让应用程序在 Java 11 上更快地运行,因为可以尽量减少那些必须完成的关注事项。...但是,你也会收到大量冗余警告。 在 Java 11 上运行应用程序后,设置 --illegal-access=deny 即可模拟 Java 运行时的未来行为。

    3.3K20

    Java中的堆栈和堆内存

    这意味着程序开发人员编写的程序或我们创建的应用程序无法直接访问系统资源(无论是硬件还是软件),除非其运行的平台提供。...JVM内存的典型五个部分包括:方法区域、堆、堆栈、PC寄存器和本机内存。 现在让我们关注堆栈和堆部分。内存不像一张白纸,程序员只需记下数据就可以存储数据。相反,内存需要在使用之前进行结构化。...这意味着每个线程都有自己的pc(程序计数器)寄存器来维护当前正在执行的指令的位置,以及一个用于保存静态内存分配的堆栈。 什么是Java中的堆栈内存?...由于每个线程都维护一个私有的JVM堆栈,因此它用于存储与其静态内存分配相关的变量。我们在代码中声明和使用的特定于方法的原始变量实际上存储在堆栈区域中。...有时,如果分配了太多变量,或者某个方法递归调用自己,堆栈可能会溢出。所有Java程序员都知道的一个常见错误是Java.lang.StackOverFlowError。当堆栈变满时,会弹出此错误。

    1.7K10

    Java 16 正式发布,已经是Java 8的两倍了

    Alpine Linux Port 在x64和AArch64体系结构上,将JDK移植到Alpine Linux以及其它使用musl C库的Linxu发行版上。...提供有关在Java平台中不正确尝试在任何基于值的类的实例上进行同步的警告。 Packaging Tool 提供jpackage用于打包独立Java应用程序的工具。...这些格式包括msi与exe在Windows,pkg并dmg在MacOS,以及deb和rpm在Linux上。 允许在打包时指定启动时间参数。...Foreign-Memory Access API (第三次孵化) 引入一个API,允许Java程序安全有效地访问Java堆之外的外部内存。...我们也很高兴看到较小的组织(例如Ampere Computing,Bellsoft,DataDog,Microdoc和独立开发人员)的贡献,他们共同贡献了Java 16中3%的修复程序。

    47320

    win7 无法启动 WPF 程序 D3Dcompiler_47.dll 丢失

    ,可以在事件查看器看到日志 错误应用程序名称: xx.exe,版本: 5.1.3.33526,时间戳: 0x59c5951c 错误模块名称: KERNELBASE.dll,版本: 6.1.7601.17514...,时间戳: 0x4ce7bafa 异常代码: 0xe0434352 错误偏移量: 0x0000b727 错误进程 ID: 0x8c 错误应用程序启动时间: 0x01d339ce8c34bedb 错误应用程序路径...: xx 错误模块路径: C:\Windows\syswow64\KERNELBASE.dll 报告 ID: cca5651f-a5c1-11e7-9921-00155d356504 调用堆栈 Framework...9, 2016 Microsoft 安全公告 MS16-097 - 严重 2、KB4040973 是 net46以上 相关更新程序;发布时间:2017 年 9 月 12 日 Description of...启动时出现 Photoshop 系统错误 - 缺少 D3DCOMPILER_47.dll WPF程序停止工作-CSDN论坛 官方措施 在 .NET Core 版本修复 Adding d3d_compiler

    1.4K10
    领券