御剑WEB目录扫描优化版之反编译

前天晚上,看到朋友说御剑出新版本了,但是这次需要输入激活码才能用。由于处于内测阶段,可以直接找御剑作者要激活码。结果我发现这款软件在我的虚拟机中,获取机器码时会崩溃,这样就没法生成激活码了(ಥ_ಥ)。于是,我打算自己破解,直接将激活相关代码删除,最终得到一个不需要激活码即可运行的御剑( ̄▽ ̄)。

先用 PEID 查壳,发现没加壳,且是 VB .net 语言编写的,那么反编译就简单多了。

0

首先,我们用 dnSpy御剑WEB目录扫描优化版.exe 反编译,并保存。

1

接着用 visual studio 2017 打开刚刚反编译的项目。主程序为 MyApplication.cs ,直接运行会报许多错误。

2

接下来主要就是修改编译时出现的错误并将激活码功能去掉。第一次编译会报 意外的字符“$” ,我们需要将整个项目中的 VB$AnonymousDelegate_0 替换成 AnonymousDelegate_0 ,并将 VB$AnonymousDelegate_0.cs 文件名改成 AnonymousDelegate_0.cs ,还有 御剑WEB目录扫描优化版.csproj 文件中的 VB$AnonymousDelegate_0 也替换成 AnonymousDelegate_0

3

再次编译,就会遇到 CS0579 特性重复 错误,试了好多方法都没解决,我就直接把它注释了。

4

接着编译,会遇到 使用了未赋值的局部变量”enumerator” ,猜测应该是用来关闭某种资源或流的,例如文件资源,这里我直接将其注释掉。

5

然后再将为初始变量 num、num3 都初始化为0,这两个变量是用来存储HTTP响应码的。

6

最后,将 Form.cs 中的 CheckJH 函数中 Flag 设置成 true 并删去校验激活码相关代码。

7

这样便绕过了激活,功能也正常,最后放一张运行效果图。

8

文章作者: Mochazz
文章链接: https://mochazz.github.io/2019/03/21/御剑反编译/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mochazz's blog