来源:dnSpy破解.net注册码求助 - 『脱壳破解讨论求助区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
楼主破解了注册码,但是导入证书界面未破解。
使用楼主反混淆后的SaveTimeV2.dll,逐个form看,发现没有导入证书这个界面。在Ribbon1类中部分按钮事件中,发现如下代码
[C#] 纯文本查看 复制代码 private void method_57(object sender, RibbonControlEventArgs e)
{
if (Operators.CompareString(ThisAddIn._lic.Lic.UserTag, "Yangruoxi2021", false) == 0)
{
new Form14().Show(new formTop(Class32.smethod_0().Hwnd));
return;
}
SimpleMsgBox.Show("您还不能使用高级功能,请联系作者购买使用", "Savetime提示", SimpleMsgBoxBase.MsgBoxButtons.OkCancel, SimpleMsgBoxBase.MsgBoxStyles.Error);
ThisAddIn._lic.ShowDialog();
}
是使用ThisAddIn._lic.Lic.UserTag,和字符串 "Yangruoxi2021"进行比较
查找 Licencer 类,在Mira.dll中,使用de4dot脱壳后,基本是明文了。
由于是比较固定的字符串,转到LicInfo类中
[C#] 纯文本查看 复制代码 public string UserTag
{
get
{
}
set
{
}
}
直接修改为
[C#] 纯文本查看 复制代码 public string UserTag
{
get
{
return "Yangruoxi2021";
}
set
{
}
}
保存后,替换原dll。运行成功。
其实函数,基本已经写明了授权文件验证方法,反向生成即可
[C#] 纯文本查看 复制代码 public bool CheckLicense()
{
this.ReadLic();
if (this.Lic == null || this.Lic.Tag == "Err")
{
this.LicCode = Licencer.LicCodes.NoLicErr;
return false;
}
if (this.Lic.RegID != this.Get32MD5(this.UserID))
{
this.LicCode = Licencer.LicCodes.LicIdErr;
return false;
}
DateTime now = DateTime.Now;
if (now < this.Lic.RegTime)
{
this.LicCode = Licencer.LicCodes.LessRegTimeErr;
return false;
}
if (now < this.Lic.LastRunTime)
{
this.LicCode = Licencer.LicCodes.LessLastRunTimeErr;
return false;
}
this._lic.LastRunTime = now;
if (now > this.Lic.StopTime)
{
this.LicCode = Licencer.LicCodes.LicOverdueErr;
return false;
}
this.LicCode = Licencer.LicCodes.NormalLic;
return true;
}
|