破解 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二進制代碼位置

再次聲明

文章中方法來源於該博客,只限於學習用途,如需使用還請支持正版!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM