说明
本脚本仅作为学习使用,请勿用于任何商业用途。
本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明。
功能简介

  • 去除软件右上角激活按钮
  • 去除导出时激活弹窗
  • 去除导出PDF文件时的水印
  • 去除导出PNG文件时的水印


使用说明

将main.py和crack.py复制到Xmind Zen的安装目录下,然后通过python3 main.py运行该脚本即可。
Crack过程:
#A 软件的安装 

  可以在官网直接下载安装包,我这里下载linux64位安装包:https://dl2.xmind.cn/XMind-ZEN-for-Linux-64bit.deb通过命令:dpkg -i XMind-ZEN-for-Linux-64bit.deb安装即可,如果中途提示缺少依赖可根据提示自行安装依赖即可。也可以使用 apt --fix-missing install直接解决安装时缺少的依赖等问题。

     

#B 运行软件      
  安装完成之后打开app确保可以正常运行,此时我们也可以看见右上角有激活相关按钮。此时导出PNG、PDF等文件时会带着试用的水印。

#C 清除水印    
  既然有水印,直接去安装目录中搜索与watermark相关的文件(非常感谢该软件的开发者,所有的命名都非常规范以至于)。于是在/opt/XMind ZEN/resources/app/out/imgs下发现有以下文件。⚡ root@F0rGeEk > /opt/XMind ZEN/resources/app/out/imgs > ls | grep watermarkpng-watermark-de-DE.svgpng-watermark-en-US.svgpng-watermark-fr-FR.svgpng-watermark-ja-JP.svgpng-watermark-zh-CN.svgpng-watermark-zh-TW.svgprint-watermark-de-DE.svgprint-watermark-en-US.svgprint-watermark-fr-FR.svgprint-watermark-ja-JP.svgprint-watermark-zh-CN.svgprint-watermark-zh-TW.svg
从以上文件可以推断出,如果安装的是简体中文那么需要关注的文件为zh-CN结尾的。通过VI随便打开一个看看都有什么。
我这里以png-watermark-zh-CN.svg为列。

  从打开文件中看见一个图层_1,初步推断水印可能就是该图层。往下接着看 看见了viewbox=“0 0 190 80”,目测可能是水印的坐标。
为了验证,我们用浏览器打开该文件并打开浏览器开发者工具。

  这里我把viewbox中的参数全部替换成0,看看效果:

  从上图我们看出,当把viewbox中关于坐标的参数全部至0时,水印图层则不存在了。于是乎用VI打开有关watermark的源文件针对该参数进行修改(修改前请备份)。修改后试着导出PNG测试一下,我靠居然真的没有水印了,在导出PDF我靠也没有水印了    
#D 去除激活按钮
  然后就是解决软件打开时的激活按钮,在安装文件中大肆的搜索active相关的文件。最终锁定在/opt/XMind ZEN/resources/app/out中的modal-activateAlert.css  modal-activateAlert.html  modal-activateAlert.js   modal-activate.css   modal-activate.html   modal-activate.js几个文件中。目测JS文件应该是罪魁祸首,由于源JS文件没有换行看着真的很累很累,本身JS就不是我的强项伤不起。 突然想这个 modal-activateAlert.js其中alert是提醒的意思,有可能这个文件会控制激活按钮呢,找了半天真的找的很累(原作之所以没换行估计就是为了制造点困难吧),一气之下把 modal-activateAlert.js中的内容全部删了。然后试着打开软件看看会不会报错,我靠打开后是惊喜!激活按钮没了!真的没了!
有图为证:

  其实这样有点暴力,但是S文件真的很难读。等我有时间了把JS文件格式整理出来之后,在看看怎么去修改吧。今天的Crack暂且告一段落。

#E 编写Python脚本
先写个用python crack的脚本吧,其实就是把这些替换修改的人为操作替换成了代码。暂且称它V0.1吧,反正暂时可以正常使用,等后期发现问题再更新吧。
脚本上传至GitHUb,仓库地址:https://github.com/ciscochao/Xmind_Zen_Crack.git

下面是脚本运行的效果:

新建文件并导出PNG、PDF等测试:

                              

Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)的更多相关文章

  1. python脚本在linux下的执行

    假设现有一篇待执行的python脚本test.py python脚本在linux下面执行有两种方式: 打开Linux终端,输入 python test.py 在test.py脚本第一行添加声明 #!/ ...

  2. python代码在linux终端中执行报错:Unable to init server: Could not connect: Connection refused

    python代码在linux终端中执行时报错: Unable to init server: Could not connect: Connection refused Unable to init ...

  3. linux系统中Nginx+FFmPeg+vlc实现网页视频播放配置过程

    linux系统中Nginx+FFmPeg实现网页监控视频播放配置过程 1.安装好的nginx上添加模块nginx-http-fiv-module-master 此模块是rtmp模块的升级版,有它所有的 ...

  4. Python输出内容的三种方式:print输出 python脚本执行 linux直接执行

    1.  在linux中安装python后,在linux命令行中输入python即可切换到Python命令行下 退出python命令行的命令: 老版本:ctrl+D 新版本:quit();或exit() ...

  5. 如何解决Python脚本在Linux和Windows上的格式问题

    python是一种对缩进有严格要求的语言, Python脚本可以使用非常多的工具进行编写,笔者在Linux系统使用JEdit进行Python脚本编写,由于在Linux编写脚本比较痛苦,比如想一眼看出相 ...

  6. window下编写python脚本在linux下运行出错 usr/bin/python^M: bad interpreter: No such file or directory

    今天在windows下使用notepad++写了个python脚本,传到linux服务器执行后提示:-bash: ./logger.py: usr/bin/python^M: bad interpre ...

  7. Python脚本:Linux自动化执行Python脚本

    1.环境及其工具: ubuntu 16.04 python2.7(自带) pip2.7(安装) virtualenv(安装) crontab (自带) 2.pip2.7安装 (1)尝试使用 sudo ...

  8. Python脚本破解Linux口令(crypt模块)

    环境 Kali Linux ,python版本2.7.13 . 我们利用Linux系统中的 crypt 模块模拟了Linux系统中用户密码的加密,在Windows中是不存在这个库的. 在Linux系统 ...

  9. Python脚本配合Linux计划任务工作

    经常遇到直接运行Python脚本没有问题,但是一放入/etc/crontab之后就歇菜的情况,总结了一下,大致需要注意以下几点: 1. 脚本首行加入#!/usr/bin/env python 2. 脚 ...

随机推荐

  1. mysql技术内幕--innodb存储引擎图解

    1. Innodb存储引擎        2. Innodb文件        3. Innodb表        4. Innodb事务        5. innodb索引与算法        6 ...

  2. minhash pyspark 源码分析——hash join table是关键

    从下面分析可以看出,是先做了hash计算,然后使用hash join table来讲hash值相等的数据合并在一起.然后再使用udf计算距离,最后再filter出满足阈值的数据: 参考:https:/ ...

  3. Kotlin泛型与协变及逆变原理剖析

    在上一次https://www.cnblogs.com/webor2006/p/11234941.html中学习了数据类[data class]相关的知识,这次会学习关于泛型相关的东东,其中有关于泛型 ...

  4. 开启idea自动Build功能

    修改Intellij IDEA的配置两步:1.setting -> Compile -> Build project automatically --> 选中 2.CTRL + SH ...

  5. 获取当前时间减去 xx时,xx分,xx秒

    使用  datetime  模块来获取当前详细时间,并将当前时间减去或增加多少 import datetime # 当前时间减去两分钟 ctime = datetime.datetime.now() ...

  6. Java中复合赋值运算符自动进行强制类型转换

    public class Operation { public static void main(String[] args) { int num1 = 10; num1 = num1 / 2.2; ...

  7. H3CNE学习4 命令行简介

    一.命令 1.简单命令 2.给路由器接口配置IP地址 3.常用命令 4.删除配置

  8. 五.划分LVM逻辑卷

    作用:    1.整合分散的空间    2.空间可以进行扩大   零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区   由众多的物理卷(PV)组合成卷组(VG),从卷组中划分多个逻辑卷(L ...

  9. QtWebEngineWidgets

    我用的qt5.10+VS2017,2013应该一样项目属性里手动添加包含目录:(QTDIR)\include\QtWebEngineWidgets,(QTDIR)\include\QtWebChann ...

  10. python时间序列数据的对齐和数据库的分批查询

    欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 0. 前言 在机器学习里,我们对时间序列数据做预处理的时候,经常会碰到一个问题:有多个时间序列存在多个表里,每个表的的时间轴不完全相同,要如 ...