.NET破解之繁星代码生成器

本教程只能用于学习研究,不可进行任何商业用途。如有使用,请购买正版,尊重他人劳动成果和知识产权!

对象:繁星代码生成器0.96

环境:Win7 x64

工具:exeinfoPE(查壳)、de4dot V3.1(反混淆)、.NET Reflector 8.5(查看)、reflexil.1.8(修改)。

目标:将180天未注册改版改为已注册版本

01.搜索

查壳、反混淆,使用.NET Reflector加载,F3搜索字符串"未注册":我们搜索到一个结果,在FrmMain主窗体的构造函数(.ctor)中。

搜索是快速找到关键点比较重要的方法:快捷键是F3,很多软件中的搜索都是F3,这里的搜索功能有四个按键:Search Type(Ctrl+T)搜索类型、Search Member(Ctrl+M)搜索成员、Search String or Constant(Ctrl+S)搜索字符串或常量、exact match准确匹配。

02.分析

查看关键代码,这里只有一个搜索结果,所以,我们可以锁定它,如果有多个结果,则要根据实际情况进行分析:这里调用了注册类RegisterHelper中的GetRegisterState方法,这个方法将Out一个整型num,分析后可得到下表:

分析代码应该算是经验起主要作用,其中的技巧和思维是需要长期练习而得。这里小结一个:一般的注册都有状态,注册成功了是什么值,没成功是什么值,缺少权限是什么值,过期是什么值,可能存储在枚举值中,如下图:

03.深入

当然,这里我们可以直接修改判断条件,可能会达到我们想要的结果,但为了保险,我们得深入进去。这里,我们深入GetRegisterState方法,将state返回大于0的数值,函数返回值任意。因为RegisterHelper在MultiStar.Common.dll里,所以,我们将它另存来进行测试。

只有彻底修改注册函数,才能解决根本问题。这样,你也可以在写代码的时候不要写得很简单,别人一看就明白,至少写复杂一点,即使被破解,也要让别人看起来都头疼。

04测试

对结果进行各种测试,包括其中的功能,有必要,可以在.NET Reflector中分析关键函数使用的地方,如下图左。

本教程只能用于学习研究,不可进行任何商业用途。如有使用,请购买正版,尊重他人劳动成果和知识产权!

原文地址:https://www.cnblogs.com/liweis/p/4529765.html