下了某源码网站的源码带有一个火车头采集器7.6,想修改一些东西,但是发现发布模块被加密了,***
百度了一下,只有一个网站提供火车头发布模块的破解服务,收费30大洋一个。太贵。
于是自己研究,不是很难,下面是思路

原本以为wpm文件就是一个文本文件,拉到文本编辑器,发现是二进制文件,注意到下面有个module.xml,貌似是压缩包的样子,把wpm改成zip,果然是压缩包,module.xml就静静的躺在那里。再用文本编辑器打开module.xml,发现76-46-B8-58-87-7F-6C-7C-1F-76-B6-28-69...之类的字符串。看起来是被加密了,那就研究下怎么解密吧。
好久之前看过火车头的说明文件,我知道火车头是用.net2.0写的,既然是.NET就肯定可以搞得到代码的,火车头7.6有些年头了,肯定用不到多先进的混淆技术。之前知道有个叫de4dot的工具可以解开.NET的混淆,有个ILSpy的工具可以反编译,于是下载这两个工具,开始了。首先看到火车头目录下有个webpostModule.exe,看文件名都知道这个是编写模块的程序,运行看看,果然是,基本确定解密相关的代码可以从此挖到。用de4dot解开混淆,用ILSpy看了半天,好像没什么收获。既然exe没有,那必然在dll里面
逐个删除了不必要的文件,边删边试,最后留下了这几个system/common.dll
System/log.dll
System/LsCommon.dll
System/otherModules.dll
MaxToCode.dll没有这几个文件WebPostModule.exe运行不起来,那么就确定了解密相关的代码必定在这几个里面,逐一用de4dot解开混淆,看文件名初步怀疑解密代码在OtherModules.dll里面,用ILSpy打开发现有一个叫WebPostModule的,展开看到ModulePassword,果然在这里,往上看Module,发现模块保存部分的代码

点Save跳到保存部分的代码

看变量s是要保存的字符串,点method_1来到字符串的生成逻辑

前面部分都是xml各个节点的组成,直接拉到后面,看到加密部分的函数,后面是加密的KEY,点EncryptString

在加密算法EncryptString的上面,对应解密的DecryptString有木有,直接就在这里了,复制DecryptString到VS里面,新建一个textBox,把module.xml的加密字符串放进去,运行,嗯,返回了一个xml,成功了。passwd节点就是密码了。
于是开始折腾一个读取器,第一次用C#,语法什么的完全不懂,光研究解压zip跟解析xml折腾了半天,总算成功了。作为一个C#的小白,第一次破解就这么顺利,还是挺高兴的。
由没有使用第三方提取ZIP文件的库,官方提取的库得基于.NET4.5,也就是xp跟2003不支持,最少win7,就这样。