XMind 2022 最新版本激活教程

XMind 2022 最新版本激活教程

图片[1]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

 


前置知识

Xmind桌面端使用的是Electron+vue开发的。

Electron打包的会在resources生成一个app.asar文件,大部分的资源页面文件都在这边。

安装asar

sudo npm install -g asar

拆包

asar extract app.asar app

组包

asar pack app app.asar

破解

下载Xmind,我这边下载的最新版本Windows 64位的,被安装到了C:\Program Files\XMind,版本XMind(2021)202109232239。(其他系统应该差不多同理)

拆包

//1、先安装nodejs,然后安装asar包,不会的自行百度 //2、使用管理员打开dos命令行工具,切换到C:\Program Files\XMind\resources 目录下 //3、拆包 asar extract app.asar app //4、修改两个文件 C:\Program Files\XMind\resources\dest\main 下面的main.js(破解会员才能导出的几个类型) 修改内容见下图(关键字搜索exportSVG) C:\Program Files\XMind\resources\dest\renderer 下面的5055.js(破解导出png和pdf的水印) 修改内容见下图(关键字搜索value: "watermark")

image-20220508084201540

图片[3]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

 

 

图片[4]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

 

组包

asar pack app app.asar //目录名和刚才的拆包名一样。然后重新运行exe就ok了。


越来越多的应用开始使用 electron 来构建跨平台桌面应用。从实现方式上来说,其本质还是基于chrome内核的html、js、css构成的应用,基于浏览器,代码必定会暴露在用户侧,任何加密手段只是增加破解门槛跟时间成本而已。

认识electron项目文件目录特征

图片[5]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

 

图片[6]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

图片[7]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

electron打包的项目,最常见的就是 asar 格式的私有编码文件,里面包含文件名、大小、内容偏移量等数据,按文件头部的 json内容 解析即可提取出所有文件。

图片[8]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

electron asar解包

目前来说,官方的版本并没有提供保护源码的方法。在github开源的找到个大神提供的解决方案(https://github.com/toyobayashi/electron-asar-encrypt-demo) ,该方案可以把启动文件编译为node二进制文件,作为启动入口,来保护薄弱的js代码。在项目启动时,将加密后的代码进行解密,交回electron流程进行执行,从而避免上述步骤直接解包拿到源代码的可能。

“` sudo npm install -g asar

拆包

asar extract app.asar app

封包

asar pack app app.asar “`

图片[9]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

图片[10]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

 

重点文件

main.bytecode

通过字节码保护Node.js源码之原理篇

Bytenode

安装

npm install --save bytenode

或者

sudo npm install -g bytenode

字节码(Byte Code)

字节码是一种源码编译后的中间表示,与汇编有类似之处,但是运行于特定的语言虚拟机中,因此它其中包含的指令不是机器指令,而是平台无关的,由虚拟机实现的虚拟机指令。

字节码是一种运行于某种虚拟机中的,更抽象的汇编。

字节码为什么可以保护源码,与代码混淆有本质区别吗

字节码经历了完整的编译流程,抹除了源码中携带的额外语义信息,其逆向难度可以与传统的编译型语言相比。

代码混淆仅仅只是障眼法,也无法防止篡改者在混淆后的源码中加入探针和钩子代码。

两者的逆向难度存在数量级的差异。

图片[11]|XMind 2022 最新版本激活教程|我要吧 - WOYAOBA.COM

 

在 code-serializer.h 中,有注释说明了 bytecode 的 header 部分包含了哪些信息。

// The data header consists of uint32_t-sized entries: // [0] magic number and (internally provided) external reference count // [1] version hash // [2] source hash // [3] flag hash // [4] number of reservation size entries // [5] payload length // [6] payload checksum part A // [7] payload checksum part B // ... reservations // ... code stub keys // ... serialized payload

卧槽,后面不会了。

参考资料

通过字节码保护Node.js源码之原理篇

https://zhuanlan.zhihu.com/p/359235114

保护 Node.js 项目的源代码

https://zhuanlan.zhihu.com/p/72666207

 

WoYaoBa.Com - 您的支持就是我们无微不至的动力!
© 版权声明
THE END
WoYaoBa.Com - 您的支持就是我们无微不至的动力!
点赞0
分享
评论 抢沙发
admin的头像|我要吧 - WOYAOBA.COM

昵称

取消
昵称