破解 Windows 下Markdown 编辑器 MarkdownPad 2
MarkdownPad 是 Windows 平台下一款优秀的 Markdown 编辑器,本文简单介绍 Markdown 以及使用一种方法破解 MarkdownPad 使其升级到专业版。该方法仅限于教育用途,我不为滥用该方法导致的商业纠纷负责!
Markdown 简介
Markdown 是一种轻量级标记语言,有着及其简单、易学易用的语法,任何人在几分钟之内都可以掌握其基本语法并用来写作,你可以在 这里 学习markdown的基本语法。其创始人 John Gruber 下面的话高度概括了 Markdown 是什么、优点以及适合哪些人使用:
Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
相比 Word 等富文本编辑器,你会花很大精力去排版上,还有它所写的内容移植性、兼容性也很差,Markdown 这种纯文本的标记语言,就不存在这种问题,当然还有很多其它好处,你可以阅读下面几篇文章:
而且当下最大的社交编程平台 Github 以及问答网站 Stackoverflow 在其有编辑框的地方,都支持的是 Markdown,这也极大地推动了 Markdown 的普及。
随着 Markdown 在开发者中间逐渐流行,出现了很多 Markdown 编辑器,如 Mac 下的 Mou, Linux 下的 ReTex,Windows 下的 MarkdownPad 等等。当然如果你不想下载这些编辑器,也可以用在线版的,如 Dillinger 等。你可以猛戳 这篇文章 ,介绍了 78 款 Markdown 编辑预览的工具。
破解 MarkdowPad 2
我目前已经习惯了写博客、做笔记等都使用 Markdown,在 Linux 使用的是 Sublime Text,在 Windows 下使用的是MarkdownPad。MarkdowPad 是 Windows 下一款优秀的 Markdown 编辑器,有免费版和专业版,专业版提供了很多高级功能,如自动保存、PDF导出、GFM 语法、自定义CSS、语法高亮等等。当免费版进行一些高级设置时,如设置Markdown处理引擎为 GFM,会提示让你升级到专业版,图1所示。可以说专业版这些功能是非常吸引我的,但专业版需要付 $14.95!本能地去在网上找破解版的,如果百度甚至Google出的所有破解 MarkdownPad 的都让你替换一个名为user.config 文件,其实都是用一个已注册邮箱和密钥进行验证的。但是遗憾的是,目前这个帐号已经不能使用了,这里介绍的一种方法,可以真正意义上破解该软件。
图1 MarkdownPad 高级设置需要升级到专业版
准备
你首先需要安装以下软件:
- MarkdownPad 2, 你可以去 官网 下载最新版的,然后安装好。
- .NET 反编译器, 这里选用ILSpy, 需要.NET Framework 4.0支持, 将可执行文件反编译成 C# 源代码。
- 反汇编工具, 无疑选用 IDA, 能将可执行文件文件反汇编成汇编文件。
- 十六进制编辑器, 有很多种,这里选用 HxD, 可以以十六进制查看二进制文件,并且编辑。
破解步骤
1.使用 ILSpy 反编译 MarkdownPad 出源文件,找到其验证授权的函数。
使用 ILSpy 打开 MarkdownPad2 安装目录下的 MarkdownPad2.exe 文件,在 MarkdowPad2.Licensing 命名空间下找到 LicenseEngine 类的 VerifyLicense 方法,如图2所示。
图2 使用ILSpy 反编译找到验证函数
这个函数是用来验证你所填写的邮箱 email 和 许可证 licenseKey 是否合法,函数首先判断 email 和 licenseKey 是否为空,若有一个为空则直接返回 false,即验证不通过; 若均不为空,那么下面进行其它逻辑的验证。我们并不关心它是如何验证用户所填的 email 和 licenseKey 是否能匹配上,我们只需要将第一步判断若 email 或 licenseKey 为空返回 false 改为 返回 true,那么,就直接通过验证了。下面就是要使用 IDA 工具找到该代码片段的二进制代码的位置。
2.使用 IDA 反汇编 Markdown,找到验证授权函数的汇编代码。
使用 IDA 打开 MarkdownPad2 安装目录下的 MarkdownPad2.exe 文件,左侧点击 Function name,按 ALT+T 键搜索VerifyLicense 函数名,能看到汇编代码逻辑图,如图3。
图3 通过IDA 反汇编找到验证函数的汇编代码
上图中黄色标记的汇编代码 ldc.i4.0 的意思是将 0 作为32位整型数压到栈上,根据上面的分析,我们应该要把这条指令改成 ldc.i4.1,让其返回 true,那么我们还需要找到这条汇编代码对应的二进制代码。在 IDA 中就可以以十六进制视图查看,如图4。
图4 在 IDA 中以十六进制视图查看验证函数代码
3.使用 HxD 修改验证授权函数的二进制代码,使其通过验证。
可以看到 ldc.i4.0 对应的二进制代码为 0x16,我们只需将其改成 0x17,这需要借助 HxD 软件来对可执行文件进行编辑。使用 HxD 打开 MarkdownPad2 安装目录下的 MarkdownPad2.exe 文件,根据图5搜索2C 02 16 2A 02 02 03,找到 16 的位置,然后将其改成 17 即可。
图5 通过搜索找到idc.i4.0二进制代码位置
再次声明
破解 Windows 下Markdown 编辑器 MarkdownPad 2的更多相关文章
- 推荐一个markdown编辑器-MarkdownPad
MarkdownPad - The Markdown Editor for Windows是一个很不错的windows下的markdown的编辑器,对于我这种总是记不住各种语法的人来说,非常方便. 免 ...
- Windows下Markdown软件的选择
从开始Java学习这个系列的同时,我也开始改用Markdown而不是无比蛋疼的博客园默认编辑器来进行博客管理.但是Windows下想找一个比较好的Markdown编辑器蛮困难的,可以说专门的Markd ...
- windows下vim编辑器,字符编码设置。
在windows下的vim默认字符集修改 之前使用vim编辑器的时候碰到乱码的问题,后来在网上看了记下了:在vim编辑器中按esc进入命令模式 1.修改vim内部编码 set encoding= ...
- 破解windows下MySQL服务启动不了的情况下不能对其进行全然卸载的解决方式
下面的文章主要介绍的是在MySQL服务启动不了的情况下,不能对其进行全然卸载的实际解决的方法的描写叙述,下面就是对解决MySQL服务启动不了的情况下详细方案的描写叙述,希望在你今后的学习中会对你有所帮 ...
- 多功能Markdown编辑器MarkdownPad 2的下载、安装和初步使用步骤(图文详解)(博主推荐)
不多说,直接上干货! MarkdownPad 是什么? 一.MarkdownPad 2的下载 http://markdownpad.com/download/markdownpad2-setup. ...
- Ubuntu 16.04下Markdown编辑器Haroopad
1.下载deb包 地址:https://bitbucket.org/rhiokim/haroopad-download/downloads/haroopad-v0.13.2-x64.deb 这里是历史 ...
- 转:windows下命令行工具
转自: http://www.cnblogs.com/haochuang/p/5593411.html Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows ...
- markdown编辑器使用建议
markdown在线编辑器: https://stackedit.io/editorhttp://dillinger.io/ windows 下建议使用 MarkdownPad linux 下建议使用 ...
- markdown编辑器的小建议
markdown编辑器使用建议 yaung by 2012.12.1-------- 这里主要说明一下我们在windows和linux下对md文件的编辑方法,为大家提供一点个人建议,如果有更好的选择 ...
随机推荐
- 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)
说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...
- jvm系列(五):tomcat性能调优和性能监控(visualvm)
tomcat服务器优化 1.JDK内存优化 根据服务器物理内容情况配置相关参数优化tomcat性能.当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃.因此一般建议堆的最 ...
- 在ASP.NET Core Web API上使用Swagger提供API文档
我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...
- 基于HTML5实现3D监控应用流动效果
http://www.hightopo.com/guide/guide/core/lighting/examples/example_flowing.html 流动效果在3D领域有着广泛的应用场景,如 ...
- ASP.NET MVC5中的Model验证
Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式. 后台验证 DataAnn ...
- asp.net mvc 上传文件
转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...
- css设置table表格tr分离
table { border-collapse:separate; border-spacing:10px 50px; }
- java获取https网站证书,附带调用https:webservice接口
一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...
- pyhton学习笔记(基础五:数据类型、数据运算)
数据类型初识 1. 数字 整数:2是一个整数的例子 长整数 不过是大一些的整数 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3*10-4. (-5+4j ...
- C/C++内存泄漏及检测
参考 http://www.cnblogs.com/skynet/archive/2011/02/20/1959162.html