什么是asar

官方说明

asar - Electron Archive
Asar is a simple extensive archive format, it works like tar that concatenates all files together without compression, while having random access support.

Features

Support random access

Use JSON to store files’ information

Very easy to write a parser

意思是说:asar类似于tar只是把所有文件合成一个文件而不进行压缩,所以理论上合成asar之后的总体积是要比原始文件要大的,毕竟还要加上存储文件信息
优点:

  • 支持随机访问
  • 使用JSON存储文件的信息
  • 很容易编写解析器

主要是electron中默认是使用这个来隐藏源码文件

asar文件结构

文件中的数据罗列

| UInt32: header_size | String: header | Bytes: file1 | ... | Bytes: file42 |

解析:
前8个字节表示信息头的长度,然后根据头的长度,去读文档中的结构json串,读取json串之后 按照文件中偏移位置和大小来读取指定文件的内容

文档信息结构json串

{"files": {"tmp": {"files": {}},"usr" : {"files": {"bin": {"files": {"ls": {"offset": "0","size": 100,"executable": true},"cd": {"offset": "100","size": 100,"executable": true}}}}},"etc": {"files": {"hosts": {"offset": "200","size": 32}}}}
}

nodejs实现原理

//读取asar文件头部信息源码
module.exports.readArchiveHeaderSync = function (archive) {const fd = fs.openSync(archive, 'r')let sizelet headerBuftry {const sizeBuf = Buffer.alloc(8)//先分配了8个字节读取头部需要的大小if (fs.readSync(fd, sizeBuf, 0, 8, null) !== 8) {throw new Error('Unable to read header size')}const sizePickle = pickle.createFromBuffer(sizeBuf)//注意:这里是转换成uint32的方式size = sizePickle.createIterator().readUInt32()headerBuf = Buffer.alloc(size)//读取headerif (fs.readSync(fd, headerBuf, 0, size, null) !== size) {throw new Error('Unable to read header')}} finally {fs.closeSync(fd)}const headerPickle = pickle.createFromBuffer(headerBuf)//转换字符串const header = headerPickle.createIterator().readString()return { header: JSON.parse(header), headerSize: size }
}

在上面的代码有两个关键就是pickle这个模块的功能,已经怎么吧字节转换成headsize的,我们先看看 readUInt32的源码

//pickle 中代码
var SIZE_INT32 = 4
var SIZE_UINT32 = 4
var SIZE_INT64 = 8
var SIZE_UINT64 = 8
var SIZE_FLOAT = 4
var SIZE_DOUBLE = 8
PickleIterator.prototype.readUInt32 = function () {return this.readBytes(SIZE_UINT32, Buffer.prototype.readUInt32LE)}

再看看Buffer.prototype.readUInt32LE 说明

用指定的字节序格式(readUInt32BE() 返回大端序, readUInt32LE() 返回小端序)从 buf 中指定的 offset 读取一个无符号的 32 位整数值。

重点在这里是小端序

  • 大端序
    • 数据的高位字节存放在地址的低端 低位字节存放在地址高端
  • 小端序
    • 数据的高位字节存放在地址的高端 低位字节存放在地址低端
      什么意思:大端序是按照数字的书写顺序进行存储的,而小端序是颠倒书写顺序进行存储的。所以这里我们读取8位之后先倒叙,然后再转uint

再看两个源码

PickleIterator.prototype.readString = function () {return this.readBytes(this.readInt()).toString()}PickleIterator.prototype.readBytes = function (length, method) {var readPayloadOffset = this.getReadPayloadOffsetAndAdvance(length)if (method != null) {return method.call(this.payload, readPayloadOffset, length)} else {return this.payload.slice(readPayloadOffset, readPayloadOffset + length)}}PickleIterator.prototype.getReadPayloadOffsetAndAdvance = function (length) {if (length > this.endIndex - this.readIndex) {this.readIndex = this.endIndexthrow new Error('Failed to read data with length of ' + length)}var readPayloadOffset = this.payloadOffset + this.readIndexthis.advance(length)return readPayloadOffset}

这段代码说明了什么,在头部这个串中是有位置偏移的,先读取要读的字符串长度,然后再读取制定的字符串。

解析流程

  • 读取头8个字节
  • 8个字节小端序转成 headsize
  • 读取headsize 数量的二进制数据headbuf
  • 读取headbuf前8个字节获取 head中json字符串的长度
  • 解析json字符串的内容
  • 根据json中文件信息读取制定位置的文件内容

C++实现

读取header_size

std::vector<byte> sizeBuf;
sizeBuf.resize(8);
FILE * file = nullptr;
_wfopen_s(&file,asarPath.c_str(), L"rb");
fread(&sizeBuf[0], sizeof(byte), 8, file);
//因为是小端序所有,先反转数组中的数据
std::reverse(sizeBuf.begin(), sizeBuf.end());
uint32_t t = deserialize1_uint32(&sizeBuf[4]);

byte数组转uint32

uint32_t deserialize1_uint32(unsigned char *buffer)
{uint32_t value = 0;value |= buffer[0] << 24;value |= buffer[1] << 16;value |= buffer[2] << 8;value |= buffer[3];return value;
}

根据headsize 读取head

byte* headbuf = new byte[length];
memset(headbuf, 0, length);
rewind(file);
//从开始位置偏移8位开始读取
fseek(file,8,SEEK_SET);
fread(headbuf,sizeof(byte),length,file);

读取真实的json

std::vector<byte> headSizeBuf;
headSizeBuf.resize(t);
memcpy(&headSizeBuf[0], &headbuf[4], 4);
//因为是小端序所有,先反转数组中的数据
std::reverse(headSizeBuf.begin(), headSizeBuf.end());
//获取真实的json串的长度
uint32_t readLength = deserialize1_uint32(&headSizeBuf[0]);
std::string headJson = std::string((char*)(&headbuf[8]), readLength);

解析json

C++解析json有很多的开源库,如rapidjson、jsoncpp等,这里我们使用rapidjson 方便引入,只需要引入头文件即可

遍历json 获取文件信息

Document d;
d.Parse(headJson.c_str());
//第一个文件的偏移位置,是头8个字节加上head的长度
writeJson(file, length+8,u8"D:\\Test\\",d["files"]);
void writeJson(FILE * file, long offset,std::string dir, rapidjson::Value &d)
{for (auto itr = d.MemberBegin();itr != d.MemberEnd(); ++itr){std::cout << "-------------------当前目录:" << dir << "---------------------------------" << std::endl;createDirectory(dir);rapidjson::Value &value = itr->value;if (value.HasMember(u8"files") == true){ //如果是文件夹就递归处理std::string strDir = dir + itr->name.GetString();strDir = strDir + u8"\\";writeJson(file, offset, strDir, value["files"]);}else {std::cout << "key:" << itr->name.GetString() << std::endl;size_t size, of;for (auto it = itr->value.MemberBegin();it != itr->value.MemberEnd(); ++it){//获取offset 偏移量if (it->value.IsString()) {std::cout << "key:" << it->name.GetString() << "   value:" << it->value.GetString() << std::endl;of = atoi(it->value.GetString());}//获取size 文件大小else if (it->value.IsInt64()) {std::cout << "key:" << it->name.GetString() << "   value:" << it->value.GetInt64() << std::endl;size = it->value.GetInt64();}}std::vector<byte> sizeBuf;sizeBuf.resize(size);FILE * wfile = nullptr;std::wstring filepath = UTF8ToWide(dir + itr->name.GetString());_wfopen_s(&wfile, filepath.c_str(), L"wb");if (size != 0){//从指定偏移位置读取数据fseek(file, offset + of, SEEK_SET);//读取制定的数据大小fread(&sizeBuf[0], sizeof(byte), size, file);fwrite(&sizeBuf[0], sizeof(byte), size, wfile);}fclose(wfile);}}
}

总结

asar还是很容易解析,但是也要注意一些细节,不然容易掉坑,为什么要用C++去解析asar文件,其实也是electron项目中,方便C++去做一些处理,如C++去运行asar中的js文件,C++去读取asar中的图片文件或者配置文件等。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. HUE

    HUE=Hadoop User ExperienceHue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,…...

    2024/4/14 9:50:22
  2. js给window添加(替代)全局方法

    面试的时候面试官让我用js手写封装一个alert方法,替代之前的alert,后面自己经过思索改造进行记录 为全局添加方法方法一:(简单直观)window.a = function(){ ... } window.alert = function(){ ... }方法2(利用jq的extend方法)$.extend(window,{a:function(){ ... },al…...

    2024/4/29 11:44:56
  3. 五十.用栈判断回文数

    #include<stdio.h> #include<string.h> int main() {char a[101], s[101];int i,len,mid,next,top;gets(a); //读入一行字符串 len = strlen(a); //求字符串的长度 mid = len / 2 - 1; //求字符串的中点 top = 0; …...

    2024/4/26 19:28:58
  4. springboot+mybatis 实现根据条件查询数据库 将结果集合循环遍历显示在页面上

    1、model层 bean类package com.example.demo.model; public class Lamp {private int id;//支付账单的openidprivate String openid;//发起人private String sname;//祝福人private String gname;//灯的位置private String address;//点灯的时间如7天private int cycle;//灯的…...

    2024/4/17 15:51:36
  5. 【python】你常常见到的assert究竟是什么东西

    什么是 assert 呢? 其实不止 Python ,很多主流的语言都有 assert ,它主要是用来检测调试你的代码问题,当你使用 assert 来检测你的代码的时候,如果是 True ,它就会直接通过,当它是 False 的时候,就会抛出错误,然后你就可以根据错误进行定位,从而在具体的位置修改代码…...

    2024/4/29 1:47:09
  6. Task1 - 部分学习内容解析与补充 Python基础入门:从变量到异常处理(第3天)

    Task1 - 部分学习内容解析与补充Python基础入门:从变量到异常处理(第3天)5.10 循环语句 - 推导式补充列表推导式生成矩阵考虑以下场景,在已有的列表的基础上,你需要对其进行横向扩充 比如已知的list为[11, 33, 55, 77], 现在的需求是扩充为[[11, 13, 15, 17], [33, 35, 37…...

    2024/4/20 16:42:19
  7. MacBook Pro充电器可以用于iPhone和iPad快速充电吗?

    苹果系列产品的充电器看起来好像都一样,所以肯定有不少小伙伴都有疑问,我可以用苹果其他产品的充电器给我的手机充电吗?答案当然是可以的!苹果官方曾说明,可以使用 Mac 电源适配器为 iPhone 或 iPad 充电,并且国外也有很多专业人士对此做过相关评测,事实证明,安全可充。…...

    2024/4/17 15:56:52
  8. 计算机网络[系统学习二]

    文章目录局域网的拓扑局域网的特点与优点广播信道的数据链路层CSMA/CD协议碰撞检测争用期二进制指数类型退避算法以太网星形拓扑信道利用率MAC层MAC帧格式无效的MAC帧 局域网的拓扑拓扑指的是网络物理上如何连接的 总线网 和 树形网两边的电阻用来吸收能量, 防止反弹造成干扰 星…...

    2024/4/14 14:56:34
  9. SQL Server CLR 使用 C# 自定义存储过程和触发器

    这一篇博客接着上一篇博客继续介绍 SQL CLR Stored Procedure 和 CLR Trigger,上一篇博客介绍了 SQL CLR Function 的使用,以及 CLR 程序集的注册和 CLR Function 的注册。我的上一篇博客:SQL Server CLR 使用 C# 自定义函数四、CLR Stored Procedure接下来在之前的项目选择…...

    2024/4/18 15:26:44
  10. vivado CLOCK_DEDICATED_ROUTE约束的使用

    参考文档:ug472set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets sys_clk]大致的意思是:输入的时钟驱动CMT时,如果在同一时钟区域没有MMCM/PLL,则需要设置CLOCK_DEDICATED_ROUTE约束。比如单个时钟驱动多个CMT的情况。...

    2024/5/2 18:38:15
  11. GNSS授时如何操作?

    GNSS可以进行定位、导航和授时—大家都知道。定位导航好说,最小二乘算出位置速度就差不多了。但是授时到底是怎么回事? GNSS授时的目的与误差GNSS授时的目的一般是要得到准确的UTC时间。导航系统星上维持的GNSST由于星钟的钟差、频偏、频漂以及随机误差,与地面运控的GNSST存…...

    2024/5/2 23:23:34
  12. 批量处理图片

    1. 图片按尺寸/分辨率排序 要求:只处理分辨率大于330的图片,所以需要按尺寸/分辨率对图片进行排序。 win7可能用‘尺寸’,我的是win10用‘分辨率’。2.ps批量修改图片的尺寸大小 https://jingyan.baidu.com/article/9f7e7ec0ecf9676f2815540a.html 1、 首先我们新建两个文件…...

    2024/5/2 0:14:02
  13. SpringMVC的九大组件

    SpringMVC的九大组件 核心类DispatcherServlet定义的九大组件DispatcherServlet在TomCat容器中创建时会调用自己的生命周期方法,创建Spring容器,并将Spring容器封装到Application域对象中,在容器启动时初始化九大组件initMultipartResolver(context); 解决文件上传的组件 in…...

    2024/5/2 13:11:51
  14. Tensorflow深度学习入门与实战(全新2.0版本)

    Tensorflow深度学习入门与实战(全新2.0版本)网盘地址:https://pan.baidu.com/s/1NmDSnKdRbRaieSXtcYYTlg 提取码: kxkuTensorFlow 是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发…...

    2024/4/10 11:53:53
  15. Linux系统调用(syscall)原理(转载)

    转载链接: http://gityuan.com/2016/05/21/syscall/引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架…...

    2024/4/12 21:21:51
  16. MAC 安装Hadoop环境的时候 突然vim命令command not found

    vim提示command not found 1️⃣ 首先输入命令,让暂时可以使用vim等命令export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin2️⃣ 打开~/.bash_profilevim ~/.bash_profile将出错误的部分修改掉(具体哪个地方出错了,在上一次source的时候已经给出了提示,情况不同)…...

    2024/4/22 3:49:43
  17. (9月9日学习笔记)H5相关书写规范和新特性、盒模型、

    H5的介绍 HTML5的介绍: 1、指的是HTML超文本标记语言的第五个版本 2、随着技术的发展,HTML5里面新增很多的东西,其实现在HTML5不仅仅指的是HTML的第五个版本,而是一个行业的标准 3、现阶段学习HTML5技术,其实学习的整个前端相关的所有技术,基础:html html5 css css3 js…...

    2024/5/1 17:36:45
  18. 使用两个线程交替打印 0~100 的奇偶数

    线程交替使用案例Synchronized 实现wait - notify 实现 Synchronized 实现 示例代码 额外了解:使用 位运算 判断奇偶数 /*** 描述: 两个线程交替打印0~100的奇偶数,用synchronized关键字实现*/ public class WaitNotifyPrintOddEvenSyn {private static int count;priva…...

    2024/5/1 10:32:36
  19. CCF 小明上学

    201812-1 小明上学#include <stdio.h> #include <stdlib.h>int main() {int n,r,y,g,i,k,t,z=0;scanf("%d %d %d",&r,&y,&g);scanf("%d",&n);for(i=0;i<n;i++){scanf("%d %d",&k,&t);if(k==0) z=z+t;els…...

    2024/4/10 16:05:17
  20. 面对亿级数据,MySQL硬的起来么?

    很多粉丝问我:MySQL到底能支撑多少数据,是不是500万以上就不行了,查询就非常慢了?这个问题问得好。到底行不行呢?我觉得还是得通过实验来见证一下,mysql面对百万、千万、亿级别的数据时,查询到底行不行???1亿数据查询速度创建表test1test1表,结构比较简单,2个字段,…...

    2024/4/30 1:40:35

最新文章

  1. tkinter 桌面GUI简单计算功能 开发文档

    Tkinter是Python的标准GUI&#xff08;图形用户界面&#xff09;工具包&#xff0c;用于创建和管理图形用户界面应用程序。Tkinter提供了一组丰富的组件和工具&#xff0c;使开发者能够轻松地构建具有按钮、标签、文本框、菜单等各种交互元素的用户界面。通过Tkinter&#xff0…...

    2024/5/3 10:34:12
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Ubuntu磁盘扩容

    使用 df -h命令查看系统磁盘控件的使用情况&#xff1a; [samspobosrv:~]$ df -h Filesystem Size Used Avail Use% Mounted on udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 1.7M 1.…...

    2024/5/2 12:55:10
  4. 第十一届蓝桥杯物联网试题(省赛)

    对于通信方面&#xff0c;还是终端A、B都保持接收状态&#xff0c;当要发送的数组不为空再发送数据&#xff0c;发送完后立即清除&#xff0c;接收数据的数组不为空则处理&#xff0c;处理完后立即清除&#xff0c;分工明确 继电器不亮一般可能是电压不够 将数据加空格再加\r…...

    2024/5/1 13:34:09
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/2 11:19:01
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/2 9:47:31
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/2 9:47:31
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/2 6:03:07
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/2 9:47:30
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/2 5:31:39
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/2 9:47:28
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/2 9:47:27
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/3 1:55:09
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/2 9:47:26
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/2 23:47:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/2 18:46:52
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/3 7:43:42
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57