v8

How does the compressed pointer implementation in V8 differ from JVM's compressed Oops?

浪尽此生 提交于 2021-02-17 05:17:20
问题 Background: V8 announced a feature called pointer compression (What's happening in V8? - Benedikt Meurer), which is intended to reduce the memory overhead of pointers for 64-bit processes. Java JVM's had a feature called CompressedOops since 2010 (since 6u23). At a first glance, it looks similar but then I realized it is not quite the same. Question: What are the main differences between the pointer compression techniques (V8 vs JVM)? The V8 implementation seems to be still not finalized, but

How to Decompile Bytenode “jsc” files?

余生长醉 提交于 2021-02-16 16:34:05
问题 I've just seen this library ByteNode it's the same as ByteCode of java but this is for NodeJS. This library compiles your JavaScript code into V8 bytecode, which protect your source code, I'm wondering is there anyway to Decompile byteNode therefore it's not secure enough. I'm wondering because I would like to protect my source code using this library? 回答1: TL;DR It'll raise the bar to someone copying the code and trying to pass it off as their own. It won't prevent a dedicated person from

九宫格心形拼图

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-15 09:44:33
九宫格心形拼图 这是一个微信小程序,用来生成九宫格心形的图片。 链接: https://pan.baidu.com/s/1sPx6FJlqzlFZ0Md6xy9jzw 提取码: 88v8 扫码体验 微信小程序需要的代码,在 src 文件夹中。 说明 前几天在朋友圈看到好几次这种图片。 这种图片,是用九张图片拼成的一个心形。 感觉很有趣,就上网查了查怎么做,大部分的说法就是用美图秀秀的拼图功能来做, 在微信小程序中也有专门做心形拼图的小程序,我都试了试之后,感觉还可以更加简单一些,于是我就自己做了个小程序。 实现小程序的思路 1、有两个 canvas,一个小的 canvas 显示最后会是什么样子,一个大的 canvas 用来最后进行截图,生成图片,保存到相册。 通过CSS的定位,把大的 canvas 移到屏幕外面不让用户看到就可以了。 而如果用小的canvas 保存图片的话,最后的图片有些模糊。 2、canvas 可以看成一个 9 * 9 的网格, 用一个叫 heart 的数组来表示就是这样的。 用其中的小格子,来拼出心形,根据数组的内容在 canvas 上进行渲染。 小程序的功能 这个小程序有 选择单张图片,选择多张图片,补充图片,保存图片,重置,推荐,意见反馈,这几个功能。 选择单张图片 当用户点击心形区域的时候,就可以选择单张图片,调用 wx.chooseImage

BUUCTF-writeup

独自空忆成欢 提交于 2021-02-14 11:12:00
Reverse RSA 使用openssl模块 rsa -pubin -text -modulus -in pub.key得到n值,在 factordb.com上 分解大素数得到p,q值,脚本生成 private.pem。 # coding=utf-8 import math import sys from Crypto.PublicKey import RSA keypair = RSA.generate(1024 ) keypair.p = 2859604688904516379356294403726392834xx keypair.q = 3040087416046019244943281559752724184xx keypair.e = 65537 keypair.n = keypair.p Qn = long((keypair.p - 1) * (keypair.q - 1 )) i = 1 while (True): x = (Qn * i) + 1 if (x % keypair.e == 0): keypair.d = x / keypair.e break i += 1 private = open( ' private.pem ' , ' w ' ) private.write(keypair.exportKey()) private.close()

CTF 湖湘杯 2018 WriteUp (部分)

老子叫甜甜 提交于 2021-02-14 07:39:33
湖湘杯 2018 WriteUp (部分),欢迎转载,转载请注明出处 https://www.cnblogs.com/iAmSoScArEd/p/10016564.html ! 1、 CodeCheck(WEB) 测试admin ‘ or ‘1’=’1’# ,php报错。点击登录框下面的滚动通知,URL中有id=b3FCRU5iOU9IemZYc1JQSkY0WG5JZz09,想到注入,但是不管输入什么都给弹到index,于是扔下这个思路。掏出目录扫描工具,发现存在list.zip,打开后是前面存在注入的界面。 图中告诉了加密的算法,AES-128-CBC对称加密,给了iv和key。并且若id后七位不是hxb2018则发生跳转(知道了之前一直跳index的原因),并且在最后返回的内容中会过滤掉空格。 上图可以看到注入的下面根据审计出的东西进行构造sql注入语句,因为会过滤空格,所以需要对空格进行代替,那就选择常用的注释/**/吧。 第一次注入为了测试有效性构造了1/**/and/**/1=2/**/union/**/select/**/1,2,3,4/**/hxb2018 对其进行AES-128-CBC加密,加密配置如下图: 拿到加密的结果放到id=后面,发现原通知部分显示了数字2和3,(3在正文部分)所以我们用第三个字段的位置来显示查询内容。 1,构造爆表语句: 1/**/and

超级账本HyperLedger:Fabric nodejs SDK的使用(附视频讲解)

自古美人都是妖i 提交于 2021-02-13 07:34:29
作者: 李佶澳 转载请保留: 原文地址 发布时间:2018/04/25 11:11:00 说明 准备合适的node版本 用npm管理依赖包 Example 参考 说明 这是“网易云课堂 IT技术快速入门学院 ”使用的素材。 操作、配置文件和代码讲解视频在 网易云课堂《HyperLeger Fabric进阶实战课》第五章 中。 当前(2018-04-25 11:16:23)fabric的SDK只有java和node是正式的,他倆的文档也是最丰富的。当前支持的node版本是v8.9.0~v9.0,v9.0以上版本不支持(2018-07-15 14:11:01)。 Hyperledger Fabric SDK for node.js 准备合适的node版本 当前支持的node版本是v8.9.0~v9.0,v9.0以上版本不支持(2018-07-15 14:11:01)。 在mac上可以用brew安装node8: $ brew install node@8 $ echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile $ node --version v8.11.3 或者直接下载安装: nodejs download 用npm管理依赖包

TS(JS)与 Go

こ雲淡風輕ζ 提交于 2021-02-12 09:09:07
https://juejin.im/post/5e3a02336fb9a07caa26f7d5 编译原理 JavaScript 是一门解释型语言或即时编译型语言,在运行时通过编译生成二进制机器码,它的运行大致经过以下几个阶段(以 V8 引擎为例): 如果使用了 TypeScript,则在运行之前 TypeScript 将会编译成 JavaScript 代码。 v8 引擎首先会解析源码,生成抽象语法树(AST),基于 AST,解释器便可以开始工作生成字节码,经过编译器后生成可以运行的机器码。 Go 是一门编译型语言,在代码***运行之前***需要通过编译器生成二进制机器码。它的编译过程大致如下: 代码首先会被扫描(词法分析)生成 token,后经过 Parser(语法分析) 生成 AST,接着会有一个类型检查的阶段,通常叫做语义分析,生成中间代码,后经过优化处理后最终生成目标机器码。 静态类型 TypeScript 和 Go 都是静态类型语言。 对于 TypeScript,笔者时常看到有关于它的各种「骚操作」,比如从 A | B 得到 A & B : type UnionToIntersection<U> = ( U extends any ? ( k: U ) => void : never ) extends ( ( k: infer I ) => void ) ? I :

Why “Map” manipulation is much slower than “Object” in JavaScript (v8) for integer keys?

不想你离开。 提交于 2021-02-10 17:48:01
问题 I was happily using Map for indexed accessed everywhere in my JavaScript codebase, but I've just stumbled upon this benchmark: https://stackoverflow.com/a/54385459/365104 I've re-created it here as well: https://jsben.ch/HOU3g What benchmark is doing is basically filling a map with 1M elements, then iterating over them. I'd expect the results for Map and Object to be on par, but they differ drastically - in favor of Object. Is this expected behavior? Can it be explained? Is it because of the

FreeRTOS 移植

不问归期 提交于 2021-02-10 08:01:23
首先准备好一个简单的裸机工程模板,工程模板的制作就不做讲解了,这里的重点是教大家移植FreeRTOS系统。: 准备好工程模板后,就可以开始移植了。首先要做的就是将所有需要的源码文件放到工程模板里面 。下面分六步和大家进行说明,当然,不限制必须使用下面的方法添加源码到工程,只要将需要的文件添加到工程模板即可。 第1步 :从网址 https://sourceforge.net/projects/freertos/files/FreeRTOS/V8.2.3/ 下载V8.2.3版本,这个是8.X系列里面最高版本了,9.0版本还处于测试阶段,我们暂不使用。 FreeRTOSV8.2.3.zip 和FreeRTOSV8.2.3.exe内容是一样的,只是后缀为exe的压缩率更高些。下载后解压出来。 第2步 :在工程模板创建FreeRTOS文件夹 第3步 :添加源码文件到相应文件夹 (1) 将FreeRTOSV8.2.3软件包中路径:    FreeRTOSV8.2.3\FreeRTOS\Source里面如下所有文件 复制到刚刚创建的FreeRTOS文件夹下。 (2) 文件夹User中还需要添加如下文件: 文件FreeRTOSConfig.h文件 在FreeRTOSV8.2.3软件包中的中的路径: FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_M4F

switch statement and scopes in ES2015

耗尽温柔 提交于 2021-02-08 23:45:47
问题 Consider this ES2015 module and the behavior when run in node v4.4.5. 'use strict' const outer = 1 switch ('foo') { case 'bar': const heyBar = 'HEY_BAR' break case 'baz': const heyBaz = 'HEY_BAZ' break default: const heyDefault = 'HEY_DEFAULT' } console.log( outer, // 1, makes sense, same top-level scope heyBar, // undefined. huh? I thought switch did NOT create a child scope heyBaz, // undefined. huh? I thought switch did NOT create a child scope heyDefault) // 'HEY_DEFAULT' makes sense This