Modbus Slave Emulator注册算法研究(六)

上面几篇文章,基本上把注册激活的流程弄清楚了。但这种调试方式仅适用于研究,因为修改内存变量只能单次生效。

要想永久生效,那就得修改dll的二进制内容了。

一劳永逸的方法,就是修改LicenseCheck函数。

// ModbusSlaveEmulator.Services.LicenseService
// Token: 0x06000D85 RID: 3461 RVA: 0x00054E34 File Offset: 0x00053034
public static bool LicenseCheck(string msg = null, bool showPopup = true)
{
	bool flag = false;
	try
	{
		User user = ActivateUtil.GetUser(StaticValue.AppSettings.User);
		if (user != null)
		{
			bool flag2 = false;
			string deviceId = Device.GetDeviceId();
			List<AssociatedApp> apps = user.Apps;
			if (apps != null)
			{
				foreach (AssociatedApp associatedApp in apps)
				{
					if (associatedApp.App == Class47.smethod_17(6456))
					{
						flag2 = associatedApp.ActivatedDevices != null && associatedApp.ActivatedDevices.Contains(deviceId);
						break;
					}
				}
			}
			if (flag2 && TimeService.Now > user.LicenseStartDateTime && TimeService.Now < user.LicenseStopDateTime)
			{
				flag = true;
			}
			if (!flag)
			{
				TimeService.RemoveUser();
			}
		}
	}
	catch (VerificationFailedException)
	{
		TimeService.RemoveUser();
	}
	catch (Exception ex)
	{
		StaticValue.Logger.Error(ex);
	}
	if (!flag && showPopup)
	{
		PopupWindow.FreeTrialTip(msg ?? Resources.FreeTrialTip);
	}
	return flag;
}

一个简单的办法,就是将flag的初始值由false改为true。

右键,编辑IL指令,

将操作码改一下。

还有一个简单的办法,将其改为:

public static bool LicenseCheck(string msg = null, bool showPopup = true)
{
    return true;
}

哈哈哈哈,再也不会出来下面这个烦人的窗口了。

怎么改?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值