记一次electron程序破解

electron会把写好的程序打包成asar,需要对asar进行解包

npm -g instal asar
asar extract app.asar app/

解包之后目录如下

➜  x ls -lahrt
total 24
-rw-r--r--   1 x  staff   335B  7 31 19:16 package.json
drwxr-xr-x  34 x  staff   1.1K  7 31 19:16 node_modules
drwxr-xr-x   6 x  staff   192B  7 31 19:25 .
-rw-r--r--@  1 x  staff   6.0K  7 31 19:25 .DS_Store
drwxr-xr-x   4 x  staff   128B  7 31 19:25 dist
drwx------+ 10 x  staff   320B  7 31 19:34 ..

源码在dist/electron中

➜  electron ls -lahrt
total 26448
-rw-r--r--   1 x  staff   5.0K  7 31 19:16 0.js
-rw-r--r--   1 x  staff   4.4K  7 31 19:16 10.js
-rw-r--r--   1 x  staff   2.0K  7 31 19:16 11.js
-rw-r--r--   1 x  staff   2.9K  7 31 19:16 12.js
-rw-r--r--   1 x  staff   2.6K  7 31 19:16 13.js
-rw-r--r--   1 x  staff   6.0K  7 31 19:16 14.js
-rw-r--r--   1 x  staff   4.4K  7 31 19:16 15.js
-rw-r--r--   1 x  staff   1.1K  7 31 19:16 16.js
-rw-r--r--   1 x  staff   2.9K  7 31 19:16 17.js
-rw-r--r--   1 x  staff   3.8K  7 31 19:16 18.js
-rw-r--r--   1 x  staff   2.1K  7 31 19:16 19.js
-rw-r--r--   1 x  staff   5.8K  7 31 19:16 2.js
-rw-r--r--   1 x  staff   3.3K  7 31 19:16 20.js
-rw-r--r--   1 x  staff   4.8K  7 31 19:16 21.js
-rw-r--r--   1 x  staff    14K  7 31 19:16 22.js
-rw-r--r--   1 x  staff   2.4K  7 31 19:16 23.js
-rw-r--r--   1 x  staff   8.1K  7 31 19:16 24.js
-rw-r--r--   1 x  staff    17K  7 31 19:16 25.js
-rw-r--r--   1 x  staff   7.8K  7 31 19:16 26.js
-rw-r--r--   1 x  staff   7.7K  7 31 19:16 27.js
-rw-r--r--   1 x  staff    17K  7 31 19:16 28.js
-rw-r--r--   1 x  staff   3.2K  7 31 19:16 29.js
-rw-r--r--   1 x  staff   3.9K  7 31 19:16 3.js
-rw-r--r--   1 x  staff   4.7K  7 31 19:16 30.js
-rw-r--r--   1 x  staff   3.2K  7 31 19:16 31.js
-rw-r--r--   1 x  staff   2.8K  7 31 19:16 32.js
-rw-r--r--   1 x  staff   8.3K  7 31 19:16 33.js
-rw-r--r--   1 x  staff   3.5K  7 31 19:16 34.js
-rw-r--r--   1 x  staff    12K  7 31 19:16 35.js
-rw-r--r--   1 x  staff   7.9K  7 31 19:16 36.js
-rw-r--r--   1 x  staff   3.8K  7 31 19:16 37.js
-rw-r--r--   1 x  staff   1.8K  7 31 19:16 38.js
-rw-r--r--   1 x  staff   1.7K  7 31 19:16 39.js
-rw-r--r--   1 x  staff   851B  7 31 19:16 4.js
-rw-r--r--   1 x  staff   6.3K  7 31 19:16 40.js
-rw-r--r--   1 x  staff   2.9K  7 31 19:16 41.js
-rw-r--r--   1 x  staff    18K  7 31 19:16 42.js
-rw-r--r--   1 x  staff    18K  7 31 19:16 43.js
-rw-r--r--   1 x  staff   6.7K  7 31 19:16 44.js
-rw-r--r--   1 x  staff   4.0K  7 31 19:16 45.js
-rw-r--r--   1 x  staff   4.9K  7 31 19:16 46.js
-rw-r--r--   1 x  staff   5.6K  7 31 19:16 47.js
-rw-r--r--   1 x  staff   1.7K  7 31 19:16 48.js
-rw-r--r--   1 x  staff   3.5K  7 31 19:16 49.js
-rw-r--r--   1 x  staff   1.8K  7 31 19:16 5.js
-rw-r--r--   1 x  staff    23K  7 31 19:16 50.js
-rw-r--r--   1 x  staff    20K  7 31 19:16 51.js
-rw-r--r--   1 x  staff    27K  7 31 19:16 52.js
-rw-r--r--   1 x  staff    14K  7 31 19:16 53.js
-rw-r--r--   1 x  staff   427K  7 31 19:16 54.js
-rw-r--r--   1 x  staff   9.1K  7 31 19:16 6.js
-rw-r--r--   1 x  staff   3.5K  7 31 19:16 7.js
-rw-r--r--   1 x  staff   4.4K  7 31 19:16 8.js
-rw-r--r--   1 x  staff   1.4K  7 31 19:16 9.js
-rw-r--r--   1 x  staff   632K  7 31 19:16 css.worker.js
-rw-r--r--   1 x  staff   105K  7 31 19:16 editor.worker.js
-rw-r--r--   1 x  staff   254K  7 31 19:16 html.worker.js
-rw-r--r--   1 x  staff   168B  7 31 19:16 index.html
-rw-r--r--   1 x  staff   194K  7 31 19:16 json.worker.js
-rw-r--r--   1 x  staff    52K  7 31 19:16 main.js
-rw-r--r--   1 x  staff   3.8M  7 31 19:16 typescript.worker.js
drwxr-xr-x   4 x  staff   128B  7 31 19:16 imgs
drwxr-xr-x  66 x  staff   2.1K  7 31 19:16 .
drwxr-xr-x   5 x  staff   160B  7 31 19:16 fonts
drwxr-xr-x   4 x  staff   128B  7 31 19:25 ..
-rw-r--r--   1 x  staff   6.3M  7 31 19:30 renderer.js

根据提示搜索字符串发现核心文件是renderer.js
代码是压缩过的,拖到chrome里面进行格式化

分析源码发现通过ispro函数进行判定有没有激活,直接修改代码return 1即可

        get isPro() {
            return 1
            //return !!this.info && (!(this.info.type === l.monthly && this.currentTime > this.info.expiredAt) && h.proLicenses.includes(this.info.type))
        }

最后重新打包

asar pack app/ app.asar

然后替换原来的app.asar即可。

标签: none