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

背景

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

asar

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

bash 复制代码
npm install -g asar

解压缩过程

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

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

命令行讲解

bash 复制代码
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这可以快速找到发生问题的代码行列,这非常有利于自己修复

相关推荐
轻口味1 小时前
【每日学点鸿蒙知识】AVCodec、SmartPerf工具、web组件加载、监听键盘的显示隐藏、Asset Store Kit
前端·华为·harmonyos
alikami1 小时前
【若依】用 post 请求传 json 格式的数据下载文件
前端·javascript·json
wakangda1 小时前
React Native 集成原生Android功能
javascript·react native·react.js
吃杠碰小鸡1 小时前
lodash常用函数
前端·javascript
emoji1111112 小时前
前端对页面数据进行缓存
开发语言·前端·javascript
泰伦闲鱼2 小时前
nestjs:GET REQUEST 缓存问题
服务器·前端·缓存·node.js·nestjs
m0_748250032 小时前
Web 第一次作业 初探html 使用VSCode工具开发
前端·html
一个处女座的程序猿O(∩_∩)O2 小时前
vue3 如何使用 mounted
前端·javascript·vue.js
m0_748235952 小时前
web复习(三)
前端
User_undefined2 小时前
uniapp Native.js原生arr插件服务发送广播到uniapp页面中
android·javascript·uni-app