Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)
说明
本脚本仅作为学习使用,请勿用于任何商业用途。
本文为原创,遵循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)的更多相关文章
- python脚本在linux下的执行
假设现有一篇待执行的python脚本test.py python脚本在linux下面执行有两种方式: 打开Linux终端,输入 python test.py 在test.py脚本第一行添加声明 #!/ ...
- 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 ...
- linux系统中Nginx+FFmPeg+vlc实现网页视频播放配置过程
linux系统中Nginx+FFmPeg实现网页监控视频播放配置过程 1.安装好的nginx上添加模块nginx-http-fiv-module-master 此模块是rtmp模块的升级版,有它所有的 ...
- Python输出内容的三种方式:print输出 python脚本执行 linux直接执行
1. 在linux中安装python后,在linux命令行中输入python即可切换到Python命令行下 退出python命令行的命令: 老版本:ctrl+D 新版本:quit();或exit() ...
- 如何解决Python脚本在Linux和Windows上的格式问题
python是一种对缩进有严格要求的语言, Python脚本可以使用非常多的工具进行编写,笔者在Linux系统使用JEdit进行Python脚本编写,由于在Linux编写脚本比较痛苦,比如想一眼看出相 ...
- 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 ...
- Python脚本:Linux自动化执行Python脚本
1.环境及其工具: ubuntu 16.04 python2.7(自带) pip2.7(安装) virtualenv(安装) crontab (自带) 2.pip2.7安装 (1)尝试使用 sudo ...
- Python脚本破解Linux口令(crypt模块)
环境 Kali Linux ,python版本2.7.13 . 我们利用Linux系统中的 crypt 模块模拟了Linux系统中用户密码的加密,在Windows中是不存在这个库的. 在Linux系统 ...
- Python脚本配合Linux计划任务工作
经常遇到直接运行Python脚本没有问题,但是一放入/etc/crontab之后就歇菜的情况,总结了一下,大致需要注意以下几点: 1. 脚本首行加入#!/usr/bin/env python 2. 脚 ...
随机推荐
- 题解 洛谷P5380 【[THUPC2019]鸭棋】
就是一道大模拟. 首先,来解释一下复杂的题意: 给你一些棋子,每个棋都有不同的走法,开局是回归原位. 接下来,题目会给你一个虚拟的走子操作(注意不一定真实),你所需要判断当前操作是否正确.若不正确,输 ...
- 《你说对就队》第八次团队作业:Alpha冲刺 第三天
<你说对就队>第八次团队作业:Alpha冲刺 第三天 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> ...
- js中number常用方法
toFixed() 将数字四舍五入为指定小数位数的数字,参数值范围为[0,20],表示四舍五入后保留的小数位数,如果没有传入参数,默认参数值等于整数,没有小数点. toprecision():用于将数 ...
- python - 一键复习知识点
## rest规范: 通过不同的 method 找到对应的 url ## Django 请求生命周期 - wsgi ,它就是socket 服务端,服务端接收用户请求并将请求初次封装,然后交给 D ...
- 09 webpack的介绍
webpack干嘛的?: 模块打包机,分析目录结构,找到js模块(包括浏览器不能直接识别的代码 typscript sass...),打包成合适的格式供浏览器访问 webpack是一款模块加载器兼打 ...
- Default Trace 查找日志文件快速增长的原因
select loginname, loginsid, spid, hostname, applicationname, servername, databasename, objectname, e ...
- BZOJ 3625:小朋友和二叉树 多项式开根+多项式求逆+生成函数
生成函数这个东西太好用了~ code: #include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s&q ...
- zeebe 集成elasticsearch exporter && 添加operate
zeebe 的operate是一个功能比较强大的管理工具,比simple-monitor 有好多方面上的改进 安全,支持用户账户的登陆 界面更友好,界面比较符合开团队工作流引擎的界面 系统监控更加强大 ...
- Random Target Moving~
测试了一下用向量处理随机目标,还是挺有趣的,源码如下: PVector p1, p2; float gap = 10; void setup() { size(1920, 1080); backgro ...
- 解释下Http请求头和常见响应状态码
Accept-Charset:指出浏览器可以接受的字符编码.英文浏览器的默认值是ISO-8859-1.ccept:指浏览器或其他客户可以接爱的MIME文件格式.可以根据它判断并返回适当的文件格式. A ...