0

我正在尝试为我的应用程序添加一个不可见的 reg 键并拒绝用户删除该值,但我不知道如何像“SetACL.exe”工具那样拒绝用户权限。

这是我的代码:

    Dim _0day As String = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("0")) ' MA==


        My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\MyApplication", _
                                      "¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?", _
                                      _0day, _
                                      Microsoft.Win32.RegistryValueKind.String)

    ' Next step:
    ' Deny user acces (Delete/Modify) to that value (not to the entire key).

更新:

试过这个,但它什么也没做,它运行没有错误,但不要拒绝权限。

Dim f As New RegistryPermission(RegistryPermissionAccess.NoAccess, "HKEY_CURRENT_USER\Software\MyApplication")
f.Deny()
4

2 回答 2

2

正如建议一样,与其创建一个密钥来表示您在用户机器上安装的应用程序作为试用版,为什么不使用具有有效加密值的密钥来标识该应用程序为许可?这样,如果用户删除或修改了密钥,您的应用程序将在试用模式下运行。

并确保加密后的密钥值对用户的机器是唯一的,这样当密钥复制到另一台机器时,它就不起作用了。

于 2013-04-30T18:24:53.740 回答
1

将注册表值设为试用开始的日期,结合硬件 ID 并加密。

使许可价值超过日期(如 1900 年 1 月 1 日)。

于 2013-05-01T16:11:04.743 回答