2024-3-28

今日流水账:

  • 把计网实验报告完成了,当然还有点小问题就是PC2=>PC4的测试截图没有
  • 看了下V8中是如何实现快速 for in的,嗯,懵懵懂懂吧,就了解了个 enum cache,其是描述符数组的一个字段,所以其是针对命名属性的,就是把可迭代的命名属性的键和索引存了下来
  • 然后看了会垃圾回收机制,有了个大概的了解,但是对应 scavenge 是如何不重复不遗漏的复制对象没有搞得太清楚。然后写屏障还是懵懵懂懂
  • 强网杯那道V8的题目漏洞原理看懂了,但是触发漏洞的代码细节没有看懂。然后下午玩了一个小时的手机…悲,然后找了会V8 IR相关的资料,但是没找到,所以又看了会GC,终于明白了Scavenge算法是如何不重复不遗漏的复制对象,主要就是设置了一个forwarding指针去记录对象在复制到to-space中的位置从而避免了重复复制的问题。对于写屏障也基本搞懂了其作用
  • 吃完晚饭一直在搞强网杯那题,不会啊…菜死了,现在晚上9点,回宿舍洗个澡,今天晚上一定把这题解决了,艹 ====> 哎,把源码大致看了下,对漏洞的理解已经差不多了,其实跟JIT相关性不是很大,我还一直找JIT相关资料呢,悲。然后把POC写出来了(应该是理解了作者的POC,自己这么菜,怎么可能自己写POC),然后利用就明天写吧
    • 其实理解这个漏洞关键要理解 V8 中for-in 的实现,对于 for-in 的实现并没有一个非常准确的规范,但是逻辑其实都差不多,只是遍历顺序不同。在V8中,当使用 for-in 语句时,会先收集键信息(包括原型链上的键),然后建立 enum cache。然后在下次访问时,就会直接以 enum cache 为源进行访问,从而提升 for-in 的性能。
    • enum cache 是共享的(在map转换树上的对象共享),当对象的 map 方式改变时(比如修改属性的类型),并没有检测原来的 map 的描述符数组的 enum cache 是否存在,而是直接将 enum cache 进行清空,…嗯好像有点不对,脑子有点懵了,明天在好好整理一下

明日计划:

  • 把强网杯那题搞完
  • 学习 Fuzz(今天Fuzz是一点没看,捂脸)
  • 看看内核相关的东西(有时间的话)

菜狗就i是我

相关推荐

  1. 2024-3-28

    2024-03-30 10:50:05       36 阅读
  2. <span style='color:red;'>2024</span>/<span style='color:red;'>3</span>/<span style='color:red;'>26</span>

    2024/3/26

    2024-03-30 10:50:05      44 阅读
  3. 2024.3.21 ARM

    2024-03-30 10:50:05       47 阅读
  4. 2024.3.22 ARM

    2024-03-30 10:50:05       37 阅读
  5. <span style='color:red;'>2024</span>.<span style='color:red;'>3</span>.<span style='color:red;'>23</span>

    2024.3.23

    2024-03-30 10:50:05      38 阅读
  6. <span style='color:red;'>2024</span>.<span style='color:red;'>3</span>.<span style='color:red;'>25</span>

    2024.3.25

    2024-03-30 10:50:05      36 阅读
  7. 2024.3.25

    2024-03-30 10:50:05       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 10:50:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 10:50:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 10:50:05       87 阅读
  4. Python语言-面向对象

    2024-03-30 10:50:05       96 阅读

热门阅读

  1. 347,前k个高频元素

    2024-03-30 10:50:05       48 阅读
  2. jQuery简介

    2024-03-30 10:50:05       34 阅读
  3. 前端Vue篇之vue3 ref 能处理对象了?

    2024-03-30 10:50:05       48 阅读
  4. K8S Pod 水平自动扩缩容 HPA

    2024-03-30 10:50:05       34 阅读
  5. 进程调度的基本过程

    2024-03-30 10:50:05       43 阅读
  6. 跨站脚本攻击(XSS)测试

    2024-03-30 10:50:05       44 阅读
  7. 面试知识汇总——垃圾回收器(G1垃圾回收器)

    2024-03-30 10:50:05       36 阅读
  8. springMVC

    springMVC

    2024-03-30 10:50:05      40 阅读
  9. Redission快速入门

    2024-03-30 10:50:05       41 阅读
  10. 001-从零学习设计模式-设计原则

    2024-03-30 10:50:05       37 阅读
  11. Redis的数据类型List使用场景实战

    2024-03-30 10:50:05       37 阅读
  12. 如何使用 RabbitMQ 进行消息的发送和接收

    2024-03-30 10:50:05       46 阅读