本帖最后由 云在天 于 2019-6-7 13:12 编辑
看了@我也是个傻瓜 大大的某篇帖子后,果断选择了dnSpy,抛弃Reflector,_(:з」∠)_
本教程只能用于学习研究,不可进行任何商业用途。如有使用,请购买正版,尊重他人劳动成果和知识产权!
首先PEid查下
那么直接放到dnSpy中看一下
发现是加了混淆,用DotNet Id查一下是什么
不太清楚这一块的东西。 抽时间好好学学,直接用de4dot来脱一下看看
成功了,再用dnSpy载入发现正常了,虽然里面还有一些伪代码,但是不影响阅读了
先来看看这个程序的流程,打开后是一个登陆界面,根据提示,可以找到这个窗口对应`login1`,登陆按钮点击事件是`Button2_Click`,免费试用按钮点击事件是`Button1_Click`
直接点击免费试用进入`MainForm`,发现最上面是一个`MenuStrip`,看到里面的一些信息
最显眼的无非就是`到期日期:免费版`,那么在`MainForm`中搜索一下`免费版`这个关键字
在`MainForm_Load`中,可以看到这么一些代码
似乎仅仅是和`lblver.Text`做了比较处理?找了找控件发现`lblver`其实是`ToolStripMenuItem`,而且还做了属性封装,取值返回的直接就是一个控件,一开始还以为是能直接修改返回text的
回过头来看看,点击免费试用之后的处理
`method_21()`这个方法是得到一个`MainForm`的实例,将其中的`lblver`强制命名为免费版,那么将这里更改成专业版之后看一下
功能比对,可以发现这里很多限制都已经去掉了,但是可以发现在一些地方仍然是免费版,比如
不过这问题不大,仅仅是显示而已,可以看到功能还是专业版的功能,但是其他一些地方就是这样
这里感觉很奇怪,明明都在MainForm中,为什么验证方法会不一样呢,于是再搜索一下这些地方的验证过程是什么样的
找到两处明显不同的验证代码如下:
[C#] 纯文本查看 复制代码 if (Class6.bool_10)
{
goto IL_235;
}
IL_1E0:
num2 = 35;
Interaction.MsgBox("免费版不支持此功能!\r\n请升级正式版!", MsgBoxStyle.Information, "提示");
IL_1F5:
num2 = 36;
int arg_22A_0 = this.Handle.ToInt32();
string text = "Open";
string text2 = "http://www.zhanshensoft.com/price.html";
string text3 = "";
string text4 = "";
MainForm.ShellExecuteA(arg_22A_0, ref text, ref text2, ref text3, ref text4, 1);
IL_230:
goto IL_E55;
IL_235:
num2 = 39;
[C#] 纯文本查看 复制代码 if (!Class6.bool_8)
{
Interaction.MsgBox("免费版不支持数据自动保存和导出,且最多挖掘1000个关键词!\r\n请升级正式版!", MsgBoxStyle.Information, "提示");
int arg_7B_0 = this.Handle.ToInt32();
string text = "Open";
string text2 = "http://www.zhanshensoft.com/price.html";
string text3 = "";
string text4 = "";
MainForm.ShellExecuteA(arg_7B_0, ref text, ref text2, ref text3, ref text4, 1);
}
else
{
Class2.Class3_0.method_2().txtNum.Text = "33";
Class2.Class3_0.method_2().ShowDialog();
}
可以看到判断了`Class6.bool_8`和`Class6.bool_10`的值,而这两个值是一个bool型的静态字段,找了整个程序也没见到在哪儿有赋值,那么就自己动手来赋值好了,因为`Class6`是个类,那么在它的构造方法中将`bool_8`,`bool_10`赋值为`true`,上面那两种判断就可以避开了,来到`Class6`的构造方法,右键点击`编辑IL指令`
添加这几句指令
解释下这两条指令
`ldc.i4.1`(将整数值1作为Int32推送到计算机堆栈上)
`stsfld`(用来自计算堆栈的值替换静态字段的值)指令
这里为什么要推送1到堆栈来替换掉字段的值就不用说了,替换完成后看现在`Class6`的构造方法
再来测试一下功能是否正确
修改后的破解专业版点击导出按钮
未修改的破解专业版点击导出按钮
不懂SEO,所以这个软件根本不懂怎么用的。 所以就先搞到这里吧
原版程序下载地址:http://www.zhanshensoft.com/down/zstools.rar
本教程只能用于学习研究,不可进行任何商业用途。如有使用,请购买正版,尊重他人劳动成果和知识产权!
|