yizems 发表于 2020-8-18 12:05

某MongoDB GUI 工具破解教程

## 1 起因

数据库GUI工具挺多的, 之前一直使用的`DataGrip`,但是他对于mongdo的支持特别弱,没有提示,没有示例,字段和关键字提示都没有,挺尴尬的; 后来发现了 这款软件; 由于众所周知的原因,这里不发布任何软件截图;

提示:**mongdo DB 最著名和流行的GUI管理工具,没有之一**

## 2 安装必备软件

###2.1 官方下载安装包, 我这里是 5.2.7 版本, 是比较新的

### 2.2 nodejs 和 asar

(https://www.baidu.com/s?ie=UTF-8&wd=nodejs%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)

安装后,国内建议使用 cnpm 淘宝源. 具体教程百度

然后执行安装`asar`

`npm install asar -g`

## 3 开始破解

破解方式有3中, 前两种是无限试用期; 最后一种是专业/企业授权; 还有一个禁止检查更新的破解;下面开始

**一定要先关闭软件**

### 3.1 解压软件的关键`Electron`包

位置在安装目录下的: `resources\` 文件夹中
如果是mac, 请右键软件,打开包内容即可看到

在该目录下有一个 `app.asar` 的文件,这个就是咱们要处理的包

执行`asar extract app.asar app`

就会出现一个名字为 `app`的文件夹

这里推荐使用 vscode + Beautify插件 直接打开该文件夹,因为涉及到多个文件修改, 并且 `Beautify插件` 能够很好的格式化js文件

### 3.2 无限试用期破解方式1

打开`shared\lmCore.js` 文件



如果你的试用期限已到期,只修改这里是不行的,还需要修改另外一个函数的返回值


### 3.3 无限试用期破解方式2

直接替换`shared\lmCore.js` 下面的函数为

```JavaScript
//是否已过试用期,改为false
function licTrialExpired() {
    return false;
}

function doGetLicInfo() {
    var a = readLicInfoFromLocal();
    let x = false;
    return {
      //enums_1.LicStatus.TrialExpired,enums_1.LicStatus.Trial,enums_1.LicStatus.Licensed
      status: enums_1.LicStatus.Trial,
      daysUsed: 0, //已使用天数
      trialLeftDays: 4000,//剩余天数
      isLicensed: x,
      from: a.from,
      licTo: x && a || void 0,
      licKey: x && a.licKey || void 0,
      //LicenseType.personal个人,LicenseType.corporate公司,LicenseType.commercial商业
      licType: a && getLicTypeFromKey(a)
    }
}

```

保存即可

### 3.4 专业授权破解
其实使用上和试用版没啥区别,需要修改2个文件

`shared\lmCore.js` 和 `frontend/utils/lm.js`

```JavaScript
       
//lmCore.js
function doGetLicInfo() {
    var a = readLicInfoFromLocal();
    let x = true;
    return {
      //enums_1.LicStatus.TrialExpired,enums_1.LicStatus.Trial,enums_1.LicStatus.Licensed
      status: enums_1.LicStatus.Licensed,
      daysUsed: 0,
      trialLeftDays: 4000,
      isLicensed: x,
      from: 10000,
      licTo: 20000,
      licKey: "33333",
      //LicenseType.personal个人,LicenseType.corporate公司,LicenseType.commercial商业
      licType: LicenseType.personal,
    }
}

//lm.js 添加一行代码
function serverSideValidateKey(o) {
    return tslib_1.__awaiter(this, void 0, void 0, function () {
      var n, r, t;
      return tslib_1.__generator(this, function (e) {
            e.label = 0;//添加这句话即可
            switch (e.label) {
                case 0:
                  return index_1.isDev() && index_1.env_config.disableServerSideValidateKey ? [2, {
                        checkDone: !1
                  }] : (r = {
                        licTo: o.licTo,
                        licKey: o.licKey,
                        version: index_1.getAppVersion(),
                        licType: lmCore_2.LicenseType,
                        from: o.from && moment(o.from).startOf("date").toDate()
                  }, );
                  ...
            }

```

### 3.5 移除检查更新功能

```JavaScript
//frontend/autoupdate-check.js
//置空该函数
function checkUpdate(s, t) {
}

```

### 3.6 重新打包
在 `resources`目录下执行命令
`asar pack app app.asar`

## 结束

执行完3中的步骤后,重新启动软件即可看到效果, 一般来说选择一种破解方式即可, 建议执行`移除检查更新功能` 功能, 每次升级后都需要重新破解,不确定新版本该方法是否还有效

**最后, 求个免费的币吧=.=**

yizems 发表于 2020-8-25 08:46

nosql ........

l7518597 发表于 2020-8-21 09:10

Robo 3T?

longxinyuze 发表于 2020-8-21 12:28

感谢分享

吾爱看雪 发表于 2020-8-21 13:35

正好需要!
谢谢!

Vvvvvoid 发表于 2020-8-21 14:21

robo 3t 还是 studio 3t

Vvvvvoid 发表于 2020-8-21 14:23

Vvvvvoid 发表于 2020-8-21 14:21
robo 3t 还是 studio 3t

不对, 那俩工具都是 java 写的...

DRINKNGMILKK 发表于 2020-8-21 16:26

加油加油,虽然我现在还看不懂,但是。。。共勉!

chinni 发表于 2020-8-25 13:18

js的破解 还是可以的. 加油

coolsnake 发表于 2020-11-14 21:49

感谢分享
页: [1] 2 3
查看完整版本: 某MongoDB GUI 工具破解教程