此软件的更新用的是 electron-updater。
electron-updater 的设计逻辑就是:下载到缓存目录 → 等待时机 → 自动替换安装。
盲猜楼主在卸载前正好命中了它的升级周期。楼主刚好卸载掉它,并且由于注册表项的存在,在下次 Windows 启动后直接启动新版本的软件了。
electron-updater在 Windows 的缓存目录一般是C:\Users\<用户名>\AppData\Local\<应用名>-updater\。这也能解释你说的残留可执行文件和楼主说的etool-update.exe文件。
我在解包后看到一个 app-update.yml 文件,内容如下,大概率是用于 update 逻辑的。
provider: generic
url: https://api.etool.site/updater/etool/
updaterCacheDirName: etool-updater
disableWebInstaller: true
此软件没有关闭 Electron 的远程调试功能,通过在控制台打印 navigator.userAgent 得知版本为 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ETool/2.6.0 Chrome/126.0.6478.234 Electron/31.7.6 Safari/537.36,对应的 V8 版本是 12.6,应该可以通过构建一个相同的 V8 环境来尝试分析 .jsc 文件。字节码总比汇编好看,有兴趣的话可以试试。
