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的更多相关文章

  1. 推荐一个markdown编辑器-MarkdownPad

    MarkdownPad - The Markdown Editor for Windows是一个很不错的windows下的markdown的编辑器,对于我这种总是记不住各种语法的人来说,非常方便. 免 ...

  2. Windows下Markdown软件的选择

    从开始Java学习这个系列的同时,我也开始改用Markdown而不是无比蛋疼的博客园默认编辑器来进行博客管理.但是Windows下想找一个比较好的Markdown编辑器蛮困难的,可以说专门的Markd ...

  3. windows下vim编辑器,字符编码设置。

    在windows下的vim默认字符集修改 之前使用vim编辑器的时候碰到乱码的问题,后来在网上看了记下了:在vim编辑器中按esc进入命令模式 1.修改vim内部编码    set encoding= ...

  4. 破解windows下MySQL服务启动不了的情况下不能对其进行全然卸载的解决方式

    下面的文章主要介绍的是在MySQL服务启动不了的情况下,不能对其进行全然卸载的实际解决的方法的描写叙述,下面就是对解决MySQL服务启动不了的情况下详细方案的描写叙述,希望在你今后的学习中会对你有所帮 ...

  5. 多功能Markdown编辑器MarkdownPad 2的下载、安装和初步使用步骤(图文详解)(博主推荐)

    不多说,直接上干货!   MarkdownPad 是什么? 一.MarkdownPad 2的下载 http://markdownpad.com/download/markdownpad2-setup. ...

  6. Ubuntu 16.04下Markdown编辑器Haroopad

    1.下载deb包 地址:https://bitbucket.org/rhiokim/haroopad-download/downloads/haroopad-v0.13.2-x64.deb 这里是历史 ...

  7. 转:windows下命令行工具

    转自: http://www.cnblogs.com/haochuang/p/5593411.html Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows ...

  8. markdown编辑器使用建议

    markdown在线编辑器: https://stackedit.io/editorhttp://dillinger.io/ windows 下建议使用 MarkdownPad linux 下建议使用 ...

  9. markdown编辑器的小建议

    markdown编辑器使用建议 yaung  by 2012.12.1-------- 这里主要说明一下我们在windows和linux下对md文件的编辑方法,为大家提供一点个人建议,如果有更好的选择 ...

随机推荐

  1. ASP.NET 访问共享文件夹

    配置代码: var dataProtection = new Microsoft.AspNet.DataProtection.DataProtectionProvider(new DirectoryI ...

  2. ORA 各种oraclesql错误

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...

  3. MFC&Halcon之实时视频监控

    上一篇实现了在MFC的窗体内显示图片,本篇介绍如何在MFC窗体内实时显示摄像头的影像. 要实现的功能是点击一个“开始”按钮,可以显示影像,再点击“停止”按钮,可以停止显示. 因为实时显示影像需要在一个 ...

  4. MyCat源码分析系列之——SQL下发

    更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlo ...

  5. 详解web容器 - Jetty与Tomcat孰强孰弱

    Jetty 基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器.它有一个基本数据模型,这个数据模型就是 Handler(处理器 ...

  6. 关于for循环的几个小练习,例如奇数偶数,阶乘,求和等

    1 .100以内的奇数和偶数 var js = ""; var os = ""; for(var i=1;i<101;i++) { if(i%2 == 0 ...

  7. Scala Macros - scalamela 1.x,inline-meta annotations

    在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...

  8. nginx php-fpm 输出php错误日志

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  9. 【干货分享】前端面试知识点锦集01(HTML篇)——附答案

    一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层分别是:HTML.CSS.JavaScript作用:HTML实现页面结构,CSS完成页面的表现与风格 ...

  10. Css3新特性总结之边框与背景(一)

    本系列主要总结Css3一些新特性的认识,来源于<css揭秘>书. 一.半透明边框 css3最好用hsla,而不是rgba,hsla是:h:颜色值(0~360):s:饱合度(0%~100%) ...