前言

好久没更新啦.
写了快四周的论文,大家都知道,用word写论文,TA的排版一直不太好.
然而,很多人还是会选择用word,为什么呢?
因为latex写起来真的不是那么容易的.重复的用代码写公式,很是心累.
所以为了让排版更好看,为了让论文得分更高(呸,这真的不是重点).
先在word上大致排版,然后转latex精校是有必要的(对我而言确实有必要).
所以,花了一些时间在网上找了一大堆的插件,但是都不是很满意,因为要(nan)收(po)费(jie).
直到我遇到了这个插件

TA让我找到了初恋般的感觉.(好吧我特么又在骗人了!tan90°!!!)
这个插件很棒,因为TA只需要如下环境即可存活.

Microsoft Windows 2000/XP/2003/Vista/7/8
Microsoft Word XP/2003/2007/2010/2013
MathType is needed for converting MathType and Equation Editor equations

相比某只支持word2003来说,已经很感人了.
好了废话不多说.

确定目标

工作环境:.net
作案工具:dnSpy
简单的运用一下查壳工具什么的查一下壳.
嗯,很棒.一眼就看出来是祖传的.net
图在此

寻门问路

首先我们在word里面随便打开一个文档,点击导航栏 word-to-latex

然后打开about,查看一下注册需要的哪些内容

呃这个...这个,因为我已经注册了.所以这里无法显示未注册内容... 当然是选择原谅我啦!
**没关系,让我这个p图小能手给你p一个,嘿嘿! **
铛铛铛~就是这个啦

随便输入一个邮箱和注册码之后,点击register.

果然提醒我invalid license key.

所以接下来

破门而入


找到安装目录,再经过我谨慎严密十足的观察10s后,我随机的选择了word-to-latex-lib.DLL.
没错就是因为TA长得很可疑!lib里面一定有交易!

载入dnSpy,这里说明一下我为什么选择dnSpy,嗯,没什么原因.长得好看,受不了,贼喜欢~
在最下方找到载入的word-to-latex-lib.dll,千万别点错了!

搜索 register (别问我为什么不搜索invalid license key,你试试~)
结果里面有get_IsRegistered IsRegistered等,接下来就要凭着我们多年的起名经验~让本著名的起名风水大师开坛算一卦~
嗯,get_IsRegistered应该是在某一个需要注册或者授权的类里面会用到这个method,属于结果调用类,而IsRegistered应该是标记是否为注册用户(trade.py users),如果没有注册,则会提醒pay for py,属于先行判断类.这两者肯定有相互印证的地方.

两个都有可能,那么挨个看吧~
双击进入get_IsRegistered

 // Token: 0x1700000F RID: 15
        // (get) Token: 0x060000FC RID: 252 RVA: 0x0000BC64 File Offset: 0x0000AC64
        public bool IsRegistered
        {
            get
            {
                return KeyList.IsNoCheck(this.serialKey) || this.IsValidMachineId(this.machineId);
            }
        }

一个bool型的返回值,嗯,interesting! IsNoCheck翻译过来就是没找到,参数传入的就是我们自己输入的所谓的注册码,返回值肯定就是false 或者true.
后面亦是如此
所以直接右键edit method (C#)或者快捷键 ctrl+shift+E,做出如下改动.

        // Token: 0x1700000F RID: 15
        // (get) Token: 0x060000FC RID: 252 RVA: 0x0000BC64 File Offset: 0x0000AC64
        public bool IsRegistered
        {
            get
            {
                return true;
            }
        }

以防万一,再看一下IsRegistered的情形:

        // Token: 0x060000B2 RID: 178 RVA: 0x000085AC File Offset: 0x000075AC
        public static bool IsRegistered()
        {
            WLInstallInfo installInfo = WLInstallInfo.Create();
            return installInfo.IsRegistered;
        }

完美,这里又返回来调用上面那个method,所以get_IsRegistered就是真正的门啦~
破门而入成功~

关门善后


做完上面的部分,基本上已经完成啦.
所以ctrl+shift+s直接保存~
现在打开你的word试试看吧~
成品
链接: http://pan.baidu.com/s/1c23W6L6 密码: 52pj

食用方法:解压压缩包,点击setup安装,然后把安装目录的word-to-latex-lib.dll替换为破解过的这个word-to-latex-lib.DLL

彩蛋注册码

如果你对上面的分析还不满意,那么
以下注册码均可直接注册,邮箱随意,请放心食用
如果你想知道怎么来的,跟着这个简单的教程一起来做做看吧~
DIXXE-1UKJP-3ST8L-VQV1I-WNFD3
1SBNS-K2AHY-NIT92-IBUBJ-F6AB7
S7V7K-Y8D9W-5UXFC-V4UPC-W7NRH
87NHH-U9PQG-9NNLW-JQQG6-2C9W2
KT89J-QGRDX-887WX-N6KCR-HVH8C
MAPV6-QGZYP-JN6A1-4I9BE-7YJRB
B96SG-IFQ8A-WYQVW-FEJLP-KQ7T1
LZZ6R-AGZG9-FZN67-Y25NW-14BKQ
Z5F7X-GSXFY-NQFN6-N46C9-DAAHY
7I3I3-SI87Q-5NH34-GQTVE-ZIH5V
QH51Z-48I6R-LX9T5-YYSG1-VWRPR
5NAMT-6CAAD-ADKSI-BEGK7-LJ6E1
79WXY-N3LYP-E42PE-EZSZS-BB6RV
DDFIR-FP1CM-YZPJY-EY3FN-GTM8S
EJ3JB-YXNEF-ET5E5-RC5GW-3UV59
JL36U-UJDX4-NW1CA-GQ4K5-8CGCS