当前位置: 首页 > article >正文

Electron 安装包 asar 解压定位问题实战

背景

在开发 Electron 过程中,我们想知道 Electron 打包的最终形态是什么样的,以便我们能更好的理解 Electron 打包的过程,以及逆向来快速追踪一些问题,例如下面这个报错,以前这类报错都是靠猜,现在则可以快速定位,找到源码问题发生点

asar

分析 Electeron 的安装包发现,其他文件大小都不变,变的就是 asar 文件,经过 AI 询问,了解到 asar 是 npm 打出来的一个压缩包,是可以借助 asar 进行解压缩的,使用这个命令进行全局安装

npm install -g asar

解压缩过程

使用 webstorm,建立一个文件夹,然后 npm init下,会生成一个 package.json,然后把安装目录中 resources 下的 asar 压缩包拷贝到 webstorm 创建的文件夹下去

点击执行图标,就将 adsbrowser 代码解压缩到 adsbrowser.unpacked 目录下了

命令行讲解

npx asar extract app.asar adxbrowser.unpacked

# app.asar 就是压缩包的名字
# adxbrowser.unpacked 就是你要解压缩的路径
# 解压过程中会有个app.asar.unpacked 临时文件,adxbrowser不知道出自何原因,将其中的一部分
# 内容从asar 中分离出来,单独放在app.asar.unpacked中,然后再打包app.asar
# 可能是为了减少压缩包app.asar的体积还是为了防止逆向 至于怎么做到这种方式我目前还没搞明
# 白,解决这种方式的方法就是将对方安装路径下的app.asar.unpacked文件夹也放在app.asar包同
# 级下执行asar命令即可

快速定位

回到刚才的 main.js 问题,在解压的文件中找到 main.js,在 webstorm 中使用 ctrl+G,输入1:78049这可以快速找到发生问题的代码行列,这非常有利于自己修复


http://www.kler.cn/a/316287.html

相关文章:

  • 鸿蒙学习基本概念
  • React的基础API介绍(二)
  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • [运维][Nginx]Nginx学习(1/5)--Nginx基础
  • 探索Pillow库:Python图像处理的瑞士军刀
  • 【C++】new操作符的使用说明
  • 深度学习与大模型第5课:利用 NLTK 中的朴素贝叶斯工具解决实际问题:垃圾邮件过滤
  • Java 速刷复习用极简小抄 P1 - Java 概念
  • C++学习笔记(36)
  • C++--C++11(下)
  • 近几年来说最有效率的编程语言和市场最认可的编程语言分别是什么?
  • Pandas库中pd.to_datetime()函数用法详细介绍
  • 监控易:部委-省-市-县多级架构的集中智能运维解决方案
  • Java如何操作Elasticsearch
  • Redis面试真题总结(三)
  • C++初阶:STL详解(四)——vector迭代器失效问题
  • 基于深度学习的3D场景重建
  • esp32 wifi 联网后,用http 发送hello 用pc 浏览器查看网页
  • WebLogic文件任意上传漏洞CVE-2018-2894
  • 0.设计模式总览——设计模式入门系列
  • uniapp如何实现图片轮播特效?
  • 二、MySQL环境搭建
  • ML 系列:机器学习和深度学习的深层次总结(07)数据预处理—解决缺失值、异常值和错误数据
  • 基于单片机的远程无线控制系统设计
  • FP7208:升压汽车车灯方案 高效稳定的电力支持
  • js笔记(二进制由0和1两个数字组成)